diff --git a/src/service/admin/mod.rs b/src/service/admin/mod.rs
index 6c3e3d026e0e45eba148865b0dd9d237d4f13ddd..0fe5edf26835efea732503a1476b955c23d96d60 100644
--- a/src/service/admin/mod.rs
+++ b/src/service/admin/mod.rs
@@ -287,7 +287,7 @@ pub fn send_message(&self, message_content: RoomMessageEventContent) {
 
     // Parse and process a message from the admin room
     async fn process_admin_message(&self, room_message: String) -> RoomMessageEventContent {
-        let mut lines = room_message.lines();
+        let mut lines = room_message.lines().filter(|l| !l.trim().is_empty());
         let command_line = lines.next().expect("each string has at least one line");
         let body: Vec<_> = lines.collect();
 
diff --git a/src/service/rooms/timeline/mod.rs b/src/service/rooms/timeline/mod.rs
index 83c30101377457040c96a6fbd93e0d5d5ebf1c8c..25e1c54d14be15b58b918f549803cb974e12dff0 100644
--- a/src/service/rooms/timeline/mod.rs
+++ b/src/service/rooms/timeline/mod.rs
@@ -456,7 +456,9 @@ struct ExtractBody {
                     let server_user = format!("@conduit:{}", services().globals.server_name());
 
                     let to_conduit = body.starts_with(&format!("{server_user}: "))
-                        || body.starts_with(&format!("{server_user} "));
+                        || body.starts_with(&format!("{server_user} "))
+                        || body == format!("{server_user}:")
+                        || body == format!("{server_user}");
 
                     // This will evaluate to false if the emergency password is set up so that
                     // the administrator can execute commands as conduit