diff --git a/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt b/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
index 6215005026a4c4497bdbeda0cadfa94b801a7645..b36befa56559ae3bf946979ba2bbef9d258df489 100644
--- a/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
+++ b/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
@@ -63,6 +63,11 @@ object ConnectionService {
     }
 
     fun connect(context: Context) {
+        if (isConnected()) {
+            gattListeners.values.map { it.onConnectionReady() }
+            return
+        }
+
         // Use first BLE devices that is bonded
         val bondedDevices = BluetoothAdapter.getDefaultAdapter().bondedDevices.filter {
             it.address.startsWith(
diff --git a/app/src/main/java/de/ccc/events/badge/card10/main/MainFragment.kt b/app/src/main/java/de/ccc/events/badge/card10/main/MainFragment.kt
index 93a46b3c58abc30517c4064f9d5e9098648209f1..911785c0e975e151155742192d8ce24d581b75b4 100644
--- a/app/src/main/java/de/ccc/events/badge/card10/main/MainFragment.kt
+++ b/app/src/main/java/de/ccc/events/badge/card10/main/MainFragment.kt
@@ -80,6 +80,11 @@ class MainFragment : Fragment(), GattListener {
 
 
     private fun showConnectedView() {
+        // The callback can happen when our UI is not visible
+        if (container_connected == null) {
+            return
+        }
+
         activity?.runOnUiThread {
             container_connected.visibility = View.VISIBLE
             container_disconnected.visibility = View.GONE