diff --git a/src/freedombone-controlpanel-user b/src/freedombone-controlpanel-user
index 5f4fb93c24ea95775b59ea8a786e92896199ef8f..424876225abf0342fd373f008da9bb3d11a710ce 100755
--- a/src/freedombone-controlpanel-user
+++ b/src/freedombone-controlpanel-user
@@ -439,7 +439,7 @@ function add_gpg_key {
     trap "rm -f $data" 0 1 2 5 15
     dialog --title $"Add someone's PGP/GPG key" \
            --backtitle $"Freedombone User Control Panel" \
-           --inputbox $"Enter their email address or Key ID below" 8 60 2>$data
+           --inputbox $"Enter their email address, Key ID or full key below" 8 60 2>$data
     sel=$?
     case $sel in
         0)
@@ -448,18 +448,29 @@ function add_gpg_key {
 
                 address_is_valid=
 
-                if [[ $ADD_EMAIL_ADDRESS == *"@"* && $ADD_EMAIL_ADDRESS == *"."* ]]; then
+                if [[ "$ADD_EMAIL_ADDRESS" == *"@"* && "$ADD_EMAIL_ADDRESS" == *"."* ]]; then
+                    address_is_valid=1
+                fi
+                if [[ "$ADD_EMAIL_ADDRESS" == "0x"* ]]; then
+                    address_is_valid=1
+                fi
+                publicstr=$"BEGIN PGP PUBLIC KEY BLOCK"
+                if [[ "$ADD_EMAIL_ADDRESS" == *"$publicstr"* ]]; then
                     address_is_valid=1
-                else
-                    if [[ $ADD_EMAIL_ADDRESS == "0x"* ]]; then
-                        address_is_valid=1
-                    fi
                 fi
 
+
                 if [ $address_is_valid ]; then
                     clear
-                    gpg --search-keys "$ADD_EMAIL_ADDRESS"
-                    gpg_set_trust "$ADD_EMAIL_ADDRESS"
+                    if [[ "$ADD_EMAIL_ADDRESS" == *"$publicstr"* ]]; then
+                        echo "$ADD_EMAIL_ADDRESS" | gpg --import
+                        dialog --title $"Add someone's PGP/GPG key" \
+                               --backtitle $"Freedombone User Control Panel" \
+                               --msgbox $"GPG public key was imported" 6 50
+                    else
+                        gpg --search-keys "$ADD_EMAIL_ADDRESS"
+                        gpg_set_trust "$ADD_EMAIL_ADDRESS"
+                    fi
                 else
                     dialog --title $"Unrecognised email address" \
                            --backtitle $"Freedombone User Control Panel" \