diff --git a/botbotbot/voice.py b/botbotbot/voice.py
index e234108..6ad70b5 100644
--- a/botbotbot/voice.py
+++ b/botbotbot/voice.py
@@ -126,11 +126,12 @@ class VoiceBot:
     async def connect_voice_chan(
         self, channel: discord.VoiceChannel | discord.StageChannel
     ) -> discord.VoiceClient:
-        if channel.guild.id in self.vo:
+        vo = self.vo.get(channel.guild.id, None)
+        if vo is not None and vo.channel != channel:
             await self.disconnect_voice(channel.guild)
-
-        vo: discord.VoiceClient = await channel.connect()
-        self.vo[channel.guild.id] = vo
+        if vo is None or vo.channel != channel:
+            vo = await channel.connect()
+            self.vo[channel.guild.id] = vo
         return vo
 
     async def disconnect_voice(self, guild: discord.Guild) -> None: