diff --git a/_vcsh b/_vcsh
index 1661e19d0e9a1bec051b0857ae8f4e908520b0be..9aca0f97095021e28777baffbcea58a1dbe1ef5f 100644
--- a/_vcsh
+++ b/_vcsh
@@ -63,10 +63,12 @@ function _vcsh-rename () {
 
 function _vcsh-run () {
 	(( CURRENT == 2 )) && __vcsh_repositories
-	if (( CURRENT >= 3 )); then
+	(( CURRENT == 3 )) && _command_names -e
+	if (( CURRENT >= 4 )); then
+		# see _precommand in zsh
 		words=( "${(@)words[3,-1]}" )
 		(( CURRENT -= 2 ))
-		_complete
+		_normal
 	fi
 }