diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp
index f76b097aa1..13eb60f45e 100644
--- a/Source/Core/Core/NetPlayClient.cpp
+++ b/Source/Core/Core/NetPlayClient.cpp
@@ -765,10 +765,10 @@ void NetPlayClient::UpdateDevices()
 	// so they should be added first.
 	for (auto player_id : m_pad_map)
 	{
-		// Use local controller types for local controllers
+		// Use local controller types for local controllers if they are compatible
 		if (player_id == m_local_player->pid)
 		{
-			if (SConfig::GetInstance().m_SIDevice[local_pad] != SIDEVICE_NONE)
+			if (SIDevice_IsGCController(SConfig::GetInstance().m_SIDevice[local_pad]))
 			{
 				SerialInterface::AddDevice(SConfig::GetInstance().m_SIDevice[local_pad], local_pad);
 			}