diff --git a/doc/vcsh.1.ronn b/doc/vcsh.1.ronn
index a1982317097d01df21cc2dd4a3ce2d598cf4eb1a..89ebff5a161a60eb8a1b2857259392a7addf1133 100644
--- a/doc/vcsh.1.ronn
+++ b/doc/vcsh.1.ronn
@@ -29,7 +29,7 @@ vcsh(1) - Version Control System for $HOME - multiple Git repositories in $HOME
 
 `vcsh` run <repo> <shell command>
 
-`vcsh` status
+`vcsh` status [<repo>]
 
 `vcsh` upgrade <repo>
 
@@ -131,7 +131,7 @@ an interactive user.
   an interactive user.
 
 * status:
-  Show statuses of all vcsh repositories.
+  Show statuses of all/one vcsh repositories.
 
 * upgrade:
   Upgrade repository to currently recommended settings.
diff --git a/vcsh b/vcsh
index 172ffd2ff3f53a5d1861d8d21afc7ae47763b5f2..9bef842ab6ac4490b05066f2e16de5f763983b46 100755
--- a/vcsh
+++ b/vcsh
@@ -109,7 +109,7 @@ help() {
           <newname>     Rename repository
    run <repo> \\
        <command>        Use this repository
-   status               Show statuses of all vcsh repositories
+   status [<repo>]      Show statuses of all/one vcsh repositories
    upgrade <repo>       Upgrade repository to currently recommended settings
    version              Print version information
    which <substring>    Find substring in name of any tracked file
@@ -294,13 +294,19 @@ run() {
 }
 
 status() {
-	for VCSH_REPO_NAME in $(list); do
-		echo "$VCSH_REPO_NAME:"
+	if [ ! "x$VCSH_REPO_NAME" = "x" ]; then
 		export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
 		use
 		git status --short --untracked-files='no'
-		echo
-	done
+	else
+		for VCSH_REPO_NAME in $(list); do
+			echo "$VCSH_REPO_NAME:"
+			export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
+			use
+			git status --short --untracked-files='no'
+			echo
+		done
+	fi
 }
 
 upgrade() {
@@ -404,9 +410,11 @@ elif [ "$1" = 'commit' ] ||
      [ "$1" = 'list' ] ||
      [ "$1" = 'list-tracked' ] ||
      [ "$1" = 'pull' ] ||
-     [ "$1" = 'push' ] ||
-     [ "$1" = 'status' ]; then
+     [ "$1" = 'push' ]; then
 	export VCSH_COMMAND="$1"
+elif [ "$1" = 'status' ]; then
+	export VCSH_COMMAND="$1"
+	export VCSH_REPO_NAME="$2"
 elif [ -n "$2" ]; then
 	export VCSH_COMMAND='run'
 	export VCSH_REPO_NAME="$1"