diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn
index 21ded83e85117c8752fee7fb22b22c586133f745..26615f6b49b78415aed2fd5118cf423144522be1 100644
--- a/doc/vcsh.1.ronn
+++ b/doc/vcsh.1.ronn
@@ -3,7 +3,7 @@ vcsh(1) - manage and sync config files via git
 
 ## SYNOPSIS
 
-`vcsh` clone <url> [<location>]
+`vcsh` clone <url> [<repo>]
 
 `vcsh` delete <repo>
 
@@ -44,6 +44,10 @@ vcsh. That being said, you can easily use `vcsh` without `mr` if you prefer.
 A sample configuration for `vcsh` and `mr` can be found at
 *https://github.com/RichiH/vcsh_mr_template*
 
+Please note that you can always use a path instead of a name for <repo>.
+This is needed to support mr and other scripts properly and of no concern to
+an interactive user.
+
 ## OPTIONS
 
 * clone:
diff --git a/vcsh b/vcsh
index 68e91200d497e773f51f1b9d12c792da0aa0e62a..550c36fc4aad326f34f1ea5ac8f5976633beaea2 100755
--- a/vcsh
+++ b/vcsh
@@ -200,11 +200,7 @@ elif [ "$1" = 'delete' ] ||
 	export VCSH_REPO_NAME="$2"
 	export GIT_DIR="$VCSH_BASE/$VCSH_REPO_NAME.git"
 	[ "$VCSH_COMMAND" = 'rename' ]         && export GIT_DIR_NEW="$VCSH_BASE/$3.git"
-	if [ "$VCSH_COMMAND" = 'run' ]; then
-		shift 2
-		export VCSH_EXTERNAL_COMMAND="$*"
-		echo $VCSH_REPO_NAME | grep -q '/' && export GIT_DIR=$VCSH_REPO_NAME
-	fi
+	[ "$VCSH_COMMAND" = 'run' ] && shift 2 && export VCSH_EXTERNAL_COMMAND="$*"
 	[ "$VCSH_COMMAND" = 'seed-gitignore' ]
 #	[ "$VCSH_COMMAND" = 'seed-gitignore' ] && export VCSH_COMMAND='seed_gitignore'
 elif [ "$1" = 'list' ]; then
@@ -221,6 +217,14 @@ else
 	help && exit
 fi
 
+# Did we receive a directory instead of a name?
+# Mangle the input to fit normal operation.
+if echo $VCSH_REPO_NAME | grep -q '/'; then
+	export GIT_DIR=$VCSH_REPO_NAME
+	export VCSH_REPO_NAME=$(basename $VCSH_REPO_NAME .git)
+fi
+
+
 for check_directory in "$VCSH_BASE" "$HOME/.gitignore.d"
 do
 	if [ ! -d "$check_directory" ]; then