diff --git a/lib/discordrb/bot.rb b/lib/discordrb/bot.rb
index <HASH>..<HASH> 100644
--- a/lib/discordrb/bot.rb
+++ b/lib/discordrb/bot.rb
@@ -170,12 +170,7 @@ module Discordrb
       return if async
 
       debug('Oh wait! Not exiting yet as run was run synchronously.')
-      sync
-    end
-
-    # Prevents all further execution until the websocket thread stops (e. g. through a closed connection).
-    def sync
-      @ws_thread.join
+      @gateway.sync
     end
 
     # Stops the bot gracefully, disconnecting the websocket without immediately killing the thread. This means that
diff --git a/lib/discordrb/gateway.rb b/lib/discordrb/gateway.rb
index <HASH>..<HASH> 100644
--- a/lib/discordrb/gateway.rb
+++ b/lib/discordrb/gateway.rb
@@ -144,6 +144,11 @@ module Discordrb
       debug('Confirmation received! Exiting run.')
     end
 
+    # Prevents all further execution until the websocket thread stops (e. g. through a closed connection).
+    def sync
+      @ws_thread.join
+    end
+
     # Whether the WebSocket connection to the gateway is currently open
     def open?
       @handshake.finished? && !@closed
Replace Bot#sync with Gateway#sync