diff --git a/handlers/borg.helper.in b/handlers/borg.helper.in
index edc33a8bb497fd79771dc157f6e85919c0e2b87a..19b3cce9fdb4d959f8e13550371ffefdf255c734 100644
--- a/handlers/borg.helper.in
+++ b/handlers/borg.helper.in
@@ -79,7 +79,7 @@ do_borg_dest() {
 
    set -o noglob
    REPLY=
-   while [ -z "$REPLY" -o -z "$borg_directory" -o -z "$borg_host" -o -z "$borg_user" -o -z "$borg_archive" -o -z "$borg_compression" -o -z "$borg_encryption" -o -z "$borg_passphrase" ]
+   while [ -z "$REPLY" -o -z "$borg_directory" -o -z "$borg_host" -o -z "$borg_user" -o -z "$borg_archive" -o -z "$borg_compression" ]
    do
      formBegin "$borg_title - destination"
         formItem "directory" "$borg_directory"
@@ -87,8 +87,6 @@ do_borg_dest() {
         formItem "user" "$borg_user"
         formItem "archive_name" "$borg_archive"
         formItem "compression" "$borg_compression"
-        formItem "encryption" "$borg_encryption"
-        formItem "passphrase" "$borg_passphrase"
 
         formDisplay
      [ $? = 0 ] || return
@@ -98,8 +96,6 @@ do_borg_dest() {
      borg_user=${tmp_array[2]}
      borg_archive=${tmp_array[3]}
      borg_compression=${tmp_array[4]}
-     borg_encryption=${tmp_array[5]}
-     borg_passphrase=${tmp_array[6]}
   done
   set +o noglob
 
@@ -107,6 +103,25 @@ do_borg_dest() {
   setDefault conn
 }
 
+do_borg_enc() {
+   radioBox "$borg_title" "Encryption mode" \
+       "none"     "no encryption and no authentication" off \
+       "repokey"  "encryption with a passphrase" on
+   [ $? = 1 ] && return;
+   borg_encryption="$REPLY"
+
+   if [ "$borg_encryption" = "repokey" ]; then
+      local question="Enter the passphrase needed to encrypt/decrypt the repository:"
+      REPLY=
+      while [ -z "$REPLY" -o -z "$borg_passphrase" ]; do
+         passwordBox "$borg_title - " "$question"
+         [ $? = 0 ] || return 1
+         borg_passphrase="$REPLY"
+      done
+   fi
+
+  _enc_done="(DONE)"
+}
 
 do_borg_local_dir() {
    local dir_status="ok"
@@ -317,11 +332,13 @@ borg_main_menu() {
    while true; do
       srcitem="choose files to include & exclude $_src_done"
       destitem="configure backup destination $_dest_done"
+      encitem="configure encryption mode $_enc_done"
       conitem="test connection and destination dir $_con_done"
       pruneitem="configure pruning (optional) $_prune_done"
       menuBox "$borg_title" "choose a step:" \
          src "$srcitem" \
          dest "$destitem" \
+         enc "$encitem" \
          conn "$conitem" \
          prune "$pruneitem" \
          finish "finish and create config file"
@@ -330,10 +347,11 @@ borg_main_menu() {
       case "$result" in
          "src") do_borg_src;;
          "dest") do_borg_dest;;
+         "enc") do_borg_enc;;
          "conn") do_borg_con;;
          "prune") do_borg_prune;;
          "finish")
-            if [[ "$_con_done$_dest_done$_src_done" != "(DONE)(DONE)(DONE)" ]]; then
+            if [[ "$_con_done$_dest_done$_dest_done$_src_done" != "(DONE)(DONE)(DONE)(DONE)" ]]; then
                msgBox "$borg_title" "You cannot create the configuration file until mandatory steps are completed."
             else
                do_borg_finish
@@ -351,6 +369,7 @@ borg_wizard() {
 
    _src_done=
    _dest_done=
+   _enc_done=
    _con_done=
 
    borg_directory=/backup/`hostname`