diff --git a/auto_completion/bash_completion/winehelper b/auto_completion/bash_completion/winehelper
index 2ade7ea..8669fc0 100644
--- a/auto_completion/bash_completion/winehelper
+++ b/auto_completion/bash_completion/winehelper
@@ -4,41 +4,39 @@ _winehelper_completions() {
     COMPREPLY=()
     cur="${COMP_WORDS[COMP_CWORD]}"
     prev="${COMP_WORDS[COMP_CWORD-1]}"
-    opts="--help --version --debug install installed run -r -i remove-all --clear-pfx remove-prefix backup-prefix restore-prefix winecfg winereg winefile wineconsole winetricks killall desktop regedit explorer cmd"
+    opts="--help --version --debug install installed -r -i remove-all --clear-pfx killall remove-prefix backup-prefix restore-prefix"
+    wine_cmd="winecfg winereg winefile wineconsole winetricks desktop regedit explorer cmd run"
 
     case "${prev}" in
+        winehelper)
+            COMPREPLY=( $(compgen -W "${opts} ${wine_cmd}" -- "${cur}") )
+            return 0
+            ;;
+        --debug)
+            COMPREPLY=( $(compgen -W "${wine_cmd}" -- "${cur}") )
+            return 0
+            ;;
         install|-i)
-            if [[ "${COMP_WORDS[COMP_CWORD-2]}" == "install" && "$cur" == "" ]]; then
-                COMPREPLY=( $(compgen -W "list" -- "${cur}") )
-            else
-                local scripts=$(ls /usr/share/winehelper/autoinstall /usr/share/winehelper/manualinstall 2>/dev/null | grep -v '^list$')
-                COMPREPLY=( $(compgen -W "${scripts}" -- "${cur}") )
-            fi
+            local scripts="$(ls -1 /usr/share/winehelper/autoinstall) $(ls -1 /usr/share/winehelper/manualinstall)"
+            COMPREPLY=( $(compgen -W "list ${scripts}" -- "${cur}") )
             return 0
             ;;
-        list)
-            COMPREPLY=()
-            return 0
-            ;;
-        run)
-            local installed=$(grep -h "Exec=env" ~/.local/share/applications/WineHelper/*.desktop 2>/dev/null | awk -F'"' '{print $4}' | xargs -n1 basename)
+        run|installed)
+            local installed=$(grep -h "Exec=env" ~/.local/share/winehelper/*.desktop 2>/dev/null | awk -F'/' '{print $NF}' | awk -F'"' '{print $1}')
             COMPREPLY=( $(compgen -W "${installed}" -- "${cur}") )
             return 0
             ;;
         remove-prefix|backup-prefix)
-            local prefixes=$(ls ~/.local/share/winehelper/prefixes 2>/dev/null)
+            local prefixes=$(ls -1 ~/.local/share/winehelper/prefixes 2>/dev/null)
             COMPREPLY=( $(compgen -W "${prefixes}" -- "${cur}") )
             return 0
             ;;
         restore-prefix)
-            COMPREPLY=( $(compgen -f -X '!*.whpack' -- "${cur}") )
             return 0
             ;;
         *)
             ;;
     esac
-
-    COMPREPLY=( $(compgen -W "${opts}" -- "${cur}") )
 }
 
 complete -F _winehelper_completions winehelper