diff --git a/src/database/rooms/edus.rs b/src/database/rooms/edus.rs
index 9e43fe17af9d915b7d2e34a560c13cb962557247..c48f4c23b5a3c21756765d6f54be6244c824d31b 100644
--- a/src/database/rooms/edus.rs
+++ b/src/database/rooms/edus.rs
@@ -382,7 +382,7 @@ pub fn presence_maintain(
                         .ok()?,
                 ))
             })
-            .take_while(|(_, timestamp)| current_timestamp - timestamp > 5 * 60_000)
+            .take_while(|(_, timestamp)| current_timestamp.saturating_sub(*timestamp) > 5 * 60_000)
         // 5 Minutes
         {
             // Send new presence events to set the user offline