diff --git a/classes/LernraumObject.trait.php b/classes/LernraumObject.trait.php
index 74fa10b2882395c4e43065166295e23c8da6ae86..79d5efd13998c6662bf7b8acf25fb254ef03f80f 100644
--- a/classes/LernraumObject.trait.php
+++ b/classes/LernraumObject.trait.php
@@ -218,7 +218,9 @@ trait LernraumObject
         );
         $included_resource_booking_ids = [];
         foreach ($study_room_bookings as $booking) {
-            $included_resource_booking_ids[] = $booking->resource_booking_id;
+            if ($booking->resource_booking_id) {
+                $included_resource_booking_ids[] = $booking->resource_booking_id;
+            }
             $occupied_ranges[] = [
                 'begin' => $booking->begin,
                 'end' => $booking->end
@@ -232,7 +234,7 @@ trait LernraumObject
                 'eventStartEditable' => false,
                 'eventDurationEditable' => false,
                 'title' => '',
-                'color' => '#d60001',
+                'color' => '#d60000',
                 'textColor' => '#ffffff',
                 'rendering' => 'background',
                 'editable' => false
@@ -262,27 +264,31 @@ trait LernraumObject
             $intervals[] = $booking_interval;
         }
 
-        $bookings = ResourceBooking::findByResourceAndTimeRanges(
-            $this,
+        $resource_booking_intervals = ResourceBookingInterval::findBySql(
+            '`resource_id` = :room_id
+            AND (
+                `begin` BETWEEN :begin AND :end
+                OR
+                `end` BETWEEN :begin AND :end
+            )
+            AND `booking_id` NOT IN ( :booking_ids )',
             [
-                [
-                    'begin' => $begin,
-                    'end' => $end
-                ]
-            ],
-            [],
-            $included_resource_booking_ids
+                'room_id' => $this->id,
+                'begin' => $begin->getTimestamp(),
+                'end' => $end->getTimestamp(),
+                'booking_ids' => $included_resource_booking_ids ?: ['']
+            ]
         );
-        foreach ($bookings as $booking) {
+        foreach ($resource_booking_intervals as $interval) {
             $occupied_ranges[] = [
-                'begin' => $booking->begin,
-                'end' => $booking->end
+                'begin' => $interval->begin,
+                'end' => $interval->end
             ];
-            $booking_interval = [
-                'resourceId' => $booking->resource_id,
-                'booking_id' => $booking->id,
-                'start' => date('Y-m-d\TH:i:s', $booking->begin),
-                'end' => date('Y-m-d\TH:i:s', $booking->end),
+            $interval_data = [
+                'resourceId' => $interval->resource_id,
+                'booking_id' => '',
+                'start' => date('Y-m-d\TH:i:s', $interval->begin),
+                'end' => date('Y-m-d\TH:i:s', $interval->end),
                 'eventStartEditable' => false,
                 'eventDurationEditable' => false,
                 'title' => '',
@@ -291,7 +297,7 @@ trait LernraumObject
                 'rendering' => 'background',
                 'editable' => false
             ];
-            $intervals[] = $booking_interval;
+            $intervals[] = $interval_data;
         }
 
         uasort(
diff --git a/plugin.manifest b/plugin.manifest
index de6ad678a0c7e847e9cc76ca2a9129bf248d9f67..4bb443bf54b80ba467cbeb1ad0410acac421e8fe 100755
--- a/plugin.manifest
+++ b/plugin.manifest
@@ -1,7 +1,7 @@
 pluginclassname=LernraumPlugin
 pluginname=LernraumPlugin
 origin=data-quest
-version=5.10.6
+version=5.10.7
 description=Verwaltung von Lernräumen
 studipMinVersion=4.5
 studipMaxVersion=4.9.99