diff --git a/Pmodules/bash_completion b/Pmodules/bash_completion
index 76c789af84d56835a981a058a398ddd6bbf5a03a..ed471535373234cb283a05ea2746e6b3f733c6c5 100644
--- a/Pmodules/bash_completion
+++ b/Pmodules/bash_completion
@@ -39,9 +39,9 @@ _module() {
 
 	COMPREPLY=()
 
-	cmds="add apropos avail clear dependencies display help\
+	cmds="add apropos avail clear display help\
 	      initadd initclear initlist initprepend initrm initswitch\
-	      keyword list load purge refresh rm search show swap switch sync\
+	      keyword list load purge refresh rm search show swap switch \
 	      unload unuse update use whatis"
 
 	opts="-c -f -h -i -l -s -t -u -v -H -V\
diff --git a/Pmodules/modulecmd.bash.in b/Pmodules/modulecmd.bash.in
index dde1dd88e9658d6aee05812434b2b4cf68682cd4..f620f21d04a64f6fd778c53b40f66b428ad907e0 100644
--- a/Pmodules/modulecmd.bash.in
+++ b/Pmodules/modulecmd.bash.in
@@ -262,6 +262,7 @@ subcommand_generic0() {
 				args+=( "$1" )
 				;;
 		esac
+		shift 1
 	done
         if (( ${#args[@]} > 0 )); then
 	        std::die 3 "%s %s: %s\n" \
@@ -459,7 +460,7 @@ subcommand_load() {
 	while (($# > 0)); do
 		case $1 in
                         -H | --help )
-                                print_help "${subcommand_load}"
+                                print_help "${subcommand}"
                                 ;;
 			-f | --force )
 				opts+=(' -f')
@@ -2294,6 +2295,24 @@ if [[ -z "${Subcommands[${subcommand}]}" ]]; then
 	std::die 1 "${CMD}: unknown sub-command -- ${subcommand}\n"
 fi
 
+case ${subcommand} in
+	add )
+		subcommand='load'
+		;;
+	display )
+		subcommand='show'
+		;;
+	keyword )
+		subcommand='apropos'
+		;;
+	rm )
+		subcommand='unload'
+		;;
+	switch )
+		subcommand='swap'
+		;;
+esac
+
 if [[ -n ${PMODULES_ENV} ]]; then
 	eval "$("${base64}" -d <<< "${PMODULES_ENV}" 2>/dev/null)"
 	if [[ -z ${Version} ]] || [[ ${Version} != ${PMODULES_VERSION} ]]; then
@@ -2335,7 +2354,7 @@ if (( ${#GroupDepths[@]} == 0 )); then
 fi
 
 case ${subcommand} in
-	load|purge|search|switch )
+	load|purge|search|swap )
 		declare -r tmpfile=$( ${mktemp} /tmp/Pmodules.XXXXXX ) \
 			|| std::die 1 "Oops: unable to create tmp file!"
 		;;