diff --git a/git-clone.sh b/git-clone.sh
index 4c9b1c9710c..e4a9ac4babc 100755
--- a/git-clone.sh
+++ b/git-clone.sh
@@ -215,7 +215,12 @@ else
 	GIT_DIR="$D/.git"
 fi &&
 export GIT_DIR &&
-git-init $quiet ${template+"$template"} || usage
+GIT_CONFIG="$GIT_DIR/config" git-init $quiet ${template+"$template"} || usage
+
+if test -n "$bare"
+then
+	GIT_CONFIG="$GIT_DIR/config" git config core.bare true
+fi
 
 if test -n "$reference"
 then
diff --git a/t/t5701-clone-local.sh b/t/t5701-clone-local.sh
index 56f9d8ae734..822ac8c28e1 100755
--- a/t/t5701-clone-local.sh
+++ b/t/t5701-clone-local.sh
@@ -8,13 +8,16 @@ D=`pwd`
 test_expect_success 'preparing origin repository' '
 	: >file && git add . && git commit -m1 &&
 	git clone --bare . a.git &&
-	git clone --bare . x
+	git clone --bare . x &&
+	test "$(GIT_CONFIG=a.git/config git config --bool core.bare)" = true &&
+	test "$(GIT_CONFIG=x/config git config --bool core.bare)" = true
 '
 
 test_expect_success 'local clone without .git suffix' '
 	cd "$D" &&
 	git clone -l -s a b &&
 	cd b &&
+	test "$(GIT_CONFIG=.git/config git config --bool core.bare)" = false &&
 	git fetch
 '