diff --git a/src/freedombone-app-syncthing b/src/freedombone-app-syncthing
index 1a78be9cf59ff467e907e603d99691f3ae4ff0d6..49fd18f01a63758de829e3719318aaa849f02af6 100755
--- a/src/freedombone-app-syncthing
+++ b/src/freedombone-app-syncthing
@@ -213,33 +213,26 @@ function run_client_syncthing {
     SYNCTHING_CONFIG_FILE=~/.syncthingids
     SYNCTHING_ID=$(cat ~/.syncthing-server-id)
 
+    W=(1 $"Show device ID for ${PROJECT_NAME}"
+       2 $"Add an ID for another machine or device"
+       3 $"Remove an ID for another machine or device"
+       4 $"Manually edit device IDs")
+
     while true
     do
-        data=$(mktemp 2>/dev/null)
-        dialog --backtitle $"Freedombone User Control Panel" \
-               --title $"File Synchronization" \
-               --radiolist $"Choose an operation:" 12 70 6 \
-               1 $"Show device ID for ${PROJECT_NAME}" off \
-               2 $"Add an ID for another machine or device" off \
-               3 $"Remove an ID for another machine or device" off \
-               4 $"Manually edit device IDs" off \
-               5 $"Back to main menu" on 2> "$data"
-        sel=$?
-        case $sel in
-            1) rm -f "$data"
-               break;;
-            255) rm -f "$data"
-                 break;;
-        esac
-        case $(cat "$data") in
+        # shellcheck disable=SC2068
+        selection=$(dialog --backtitle $"Freedombone User Control Panel" --title $"File Synchronization" --menu $"Choose an operation, or ESC for main menu:" 12 70 6 "${W[@]}" 3>&2 2>&1 1>&3)
+
+        if [ ! "$selection" ]; then
+           break
+        fi
+
+        case $selection in
             1) syncthing_show_id;;
             2) syncthing_add_id;;
             3) syncthing_remove_id;;
             4) syncthing_manual_edit;;
-            5) rm -f "$data"
-               break;;
         esac
-        rm -f "$data"
     done
 }