diff --git a/src/main.rs b/src/main.rs
index 31dba7264a6b06a847649af82bce9afa8841f2af..bff47decec29e2162603b916a33569f4b6ad6d7d 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -14,7 +14,7 @@ use matrix_sdk::{
         },
         UserId,
     },
-    Client, Result, SyncSettings,
+    Client, LoopCtrl, Result, SyncSettings, RoomInfo,
 };
 
 use matrix_sdk::ruma::{events::SyncStateEvent, Int, MilliSecondsSinceUnixEpoch};
@@ -77,7 +77,7 @@ async fn main() -> Result<()> {
             println!("Logged as: {}", alice);
 
             // Don't respond to old messages
-            // client.sync_once(SyncSettings::default()).await?;
+            client.sync_once(SyncSettings::default()).await?;
 
             // https://docs.rs/ruma/0.4.0/ruma/events/enum.AnySyncMessageEvent.html
             client
@@ -85,21 +85,18 @@ async fn main() -> Result<()> {
                     |ev: SyncMessageEvent<MessageEventContent>,
                      room: Room,
                      encryption_info: Option<EncryptionInfo>| async move {
-                        println!("---\nROOM: {:?}\nENC: {:?}\nSME: {:?}", room, encryption_info, ev);
+                        println!(
+                            "---\nROOM: {:?}\nENC: {:?}\nSME: {:?}",
+                            room, encryption_info, ev
+                        );
                     },
                 )
                 .await;
-            client
-                .register_event_handler(|ev: SyncStateEvent<TopicEventContent>| async move {
-                    // You can omit any or all arguments after the first.
-                })
-                .await;
 
-            // Because we sync once already we must pass the previous sync token
-            // let settings = SyncSettings::default().token(client.sync_token().await.unwrap());
             println!("Entering sync loop");
-            // client.sync(settings).await;
-            client.sync(SyncSettings::default()).await;
+            let token = client.sync_token().await.unwrap();
+            let settings = SyncSettings::default().token(token);
+            client.sync(settings).await;
             Ok(())
         }
         Err(e) => panic!(