diff --git a/src/main/java/de/thm/arsnova/service/RoomServiceImpl.java b/src/main/java/de/thm/arsnova/service/RoomServiceImpl.java
index 2ea4ae30ee8cbeec857bb80c8dc5393c4750fab0..4f249b077da2a46baacb90a0ed50780ffb0d4eee 100644
--- a/src/main/java/de/thm/arsnova/service/RoomServiceImpl.java
+++ b/src/main/java/de/thm/arsnova/service/RoomServiceImpl.java
@@ -34,14 +34,17 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.cache.annotation.Caching;
+import org.springframework.context.event.EventListener;
 import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
 import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.security.access.annotation.Secured;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.Validator;
 
 import de.thm.arsnova.connector.client.ConnectorClient;
 import de.thm.arsnova.connector.model.Course;
+import de.thm.arsnova.event.BeforeDeletionEvent;
 import de.thm.arsnova.event.FlipFlashcardsEvent;
 import de.thm.arsnova.model.Room;
 import de.thm.arsnova.model.UserProfile;
@@ -149,6 +152,13 @@ public class RoomServiceImpl extends DefaultEntityServiceImpl<Room> implements R
 		this.connectorClient = connectorClient;
 	}
 
+	@EventListener
+	@Secured({"ROLE_USER", "RUN_AS_SYSTEM"})
+	public void handleUserDeletion(final BeforeDeletionEvent<UserProfile> event) {
+		final Iterable<Room> rooms = roomRepository.findByOwnerId(event.getEntity().getId(), -1, -1);
+		delete(rooms);
+	}
+
 	@Scheduled(fixedDelay = ROOM_INACTIVITY_CHECK_INTERVAL_MS)
 	public void deleteInactiveRooms() {
 		if (guestRoomInactivityThresholdDays > 0) {