diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel
index 49ed54bef52fded7acf01d2dbb10358cb1e62bd0..4f5f207b3cc00b126907e6688be99c1d53688a6d 100755
--- a/src/freedombone-controlpanel
+++ b/src/freedombone-controlpanel
@@ -108,6 +108,15 @@ function any_key {
     read -n1 -r -p $"Press any key to continue..." key
 }
 
+function get_app_icann_address {
+    app_name="$1"
+    icann_address=""
+    if grep -q "${app_name} domain" $COMPLETION_FILE; then
+        icann_address=$(cat ${COMPLETION_FILE} | grep "${app_name} domain" | head -n 1 | awk -F ':' '{print $2}')
+    fi
+    echo "$icann_address"
+}
+
 function passwords_select_user {
     SELECTED_USERNAME=
 
@@ -176,11 +185,19 @@ function view_or_change_passwords {
 
     CURR_PASSWORD=$(${PROJECT_NAME}-pass -u ${SELECTED_USERNAME} -a ${SELECTED_APP})
 
+    icann_address=$(get_app_icann_address "$app_name")
+    onion_address=$(get_app_onion_address "${SELECTED_APP}")
+    if [ ${#onion_address} -gt 0 ]; then
+        viewstr=$"${SELECTED_APP} password for ${SELECTED_USERNAME} on $icann_address or $onion_address.\n\nCopy or change it if you wish."
+    else
+        viewstr=$"${SELECTED_APP} password for ${SELECTED_USERNAME} on $icann_address\n\nCopy or change it if you wish."
+    fi
+
     data=$(tempfile 2>/dev/null)
     trap "rm -f $data" 0 1 2 5 15
     dialog --title $"View or Change Password" \
            --backtitle $"Freedombone Control Panel" \
-           --inputbox $"${SELECTED_APP} password for ${SELECTED_USERNAME}. Copy or change it if you wish." 8 60 "$CURR_PASSWORD" 2>$data
+           --inputbox "$viewstr" 12 60 "$CURR_PASSWORD" 2>$data
     sel=$?
     case $sel in
         0)
@@ -347,23 +364,15 @@ function show_domains {
         fi
 
         if [ ${#app_name} -gt 0 ]; then
-            if grep -q "${app_name} domain" $COMPLETION_FILE; then
-                icann_address=$(cat ${COMPLETION_FILE} | grep "${app_name} domain" | head -n 1 | awk -F ':' '{print $2}')
-            fi
-
-            if grep -q "${app_name} onion domain" $COMPLETION_FILE; then
-                onion_address=$(cat ${COMPLETION_FILE} | grep "${app_name} onion domain" | head -n 1 | awk -F ':' '{print $2}')
-            fi
+            icann_address=$(get_app_icann_address "$app_name")
+            onion_address=$(get_app_onion_address "$app_name")
 
             echo -n -e "$(pad_string "${app_name}")"
             echo -n -e "$(pad_string "${icann_address}")"
             echo "${onion_address}"
 
             if grep -q "${app_name}_mobile onion domain" $COMPLETION_FILE; then
-                if grep -q "${app_name}_mobile onion domain" $COMPLETION_FILE; then
-                    onion_address=$(cat ${COMPLETION_FILE} | grep "${app_name}_mobile onion domain" | head -n 1 | awk -F ':' '{print $2}')
-                fi
-
+                onion_address=$(get_app_onion_address "${app_name}")
                 echo -n -e "$(pad_string "${app_name} (mobile)")"
                 echo -n -e "$(pad_string "${icann_address}")"
                 echo "${onion_address}"
diff --git a/src/freedombone-utils-onion b/src/freedombone-utils-onion
index b0df670f1fc7f18d66780be3c6b699d8abc75e64..009c89cdc3301ec9923ec325f0ea041523f79ffc 100755
--- a/src/freedombone-utils-onion
+++ b/src/freedombone-utils-onion
@@ -380,4 +380,15 @@ function route_outgoing_traffic_through_tor {
     mark_completed $FUNCNAME
 }
 
+function get_app_onion_address {
+    app_name="$1"
+    if grep -q "${app_name}_mobile onion domain" $COMPLETION_FILE; then
+        if grep -q "${app_name}_mobile onion domain" $COMPLETION_FILE; then
+            echo $(cat ${COMPLETION_FILE} | grep "${app_name}_mobile onion domain" | head -n 1 | awk -F ':' '{print $2}')
+            return
+        fi
+    fi
+    echo ""
+}
+
 # NOTE: deliberately no exit 0