diff --git a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
index 1c095abf9a2849879931caa7e3a9fb70565a4ca1..5611562f1f5b73808da72a4d00a536002549e408 100644
--- a/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
+++ b/PlayWallPlugins/PlayWallPluginWebAPI/src/main/java/de/tobias/playpad/plugin/api/client/WebApiRemoteConnectionStateListener.java
@@ -63,10 +63,11 @@ public class WebApiRemoteConnectionStateListener implements MainWindowListener {
 	}
 
 	private void createConnectionStateBinding() {
+		final List<PlayPadClient> clients = new ArrayList<>(WebApiPlugin$.MODULE$.connections().values());
 		connectedProperty.bind(Bindings.createIntegerBinding(() -> (int) WebApiPlugin$.MODULE$.connections().values().stream()
 						.filter(client -> client.getPlayPadConnectionState() != WebSocketState.OPEN)
 						.count(),
-				WebApiPlugin$.MODULE$.connections().values().stream()
+				clients.stream()
 						.map(PlayPadClient::playPadConnectionState)
 						.toArray(ObjectProperty[]::new))
 		);