diff --git a/vcsh b/vcsh
index a6d82138307a2d00e93f8c944b3f93ac03e69316..b78235b7e9b06fa0f15842f9bbc62c0e80444a4f 100755
--- a/vcsh
+++ b/vcsh
@@ -257,6 +257,7 @@ pull() {
 		export GIT_DIR="$VCSH_REPO_D/$VCSH_REPO_NAME.git"
 		use
 		git pull
+		VCSH_COMMAND_RETURN_CODE=$?
 		echo
 	done
 	hook post-pull
@@ -295,6 +296,7 @@ run() {
 	hook pre-run
 	use
 	"$@"
+	VCSH_COMMAND_RETURN_CODE=$?
 	hook post-run
 }
 
@@ -499,3 +501,4 @@ hook pre-command
 $VCSH_COMMAND "$@"
 hook post-command
 verbose "$VCSH_COMMAND end, exiting"
+exit $VCSH_COMMAND_RETURN_CODE