diff --git a/git-codereview/sync.go b/git-codereview/sync.go
index f8233f1..0555d67 100644
--- a/git-codereview/sync.go
+++ b/git-codereview/sync.go
@@ -10,7 +10,6 @@
 	"fmt"
 	"io/ioutil"
 	"os"
-	"path/filepath"
 	"strings"
 )
 
@@ -104,7 +103,7 @@
 }
 
 func syncBranchStatusFile() string {
-	return filepath.Join(repoRoot(), ".git/codereview-sync-branch-status")
+	return gitPath("codereview-sync-branch-status")
 }
 
 func readSyncBranchStatus() *syncBranchStatus {
diff --git a/git-codereview/sync_test.go b/git-codereview/sync_test.go
index 884168c..1dbd7bf 100644
--- a/git-codereview/sync_test.go
+++ b/git-codereview/sync_test.go
@@ -7,6 +7,7 @@
 import (
 	"bytes"
 	"io/ioutil"
+	"os"
 	"path/filepath"
 	"strings"
 	"testing"
@@ -238,6 +239,29 @@
 		"Run 'git codereview mail' to send for review.")
 }
 
+func TestSyncBranchWorktree(t *testing.T) {
+	gt := newGitTest(t)
+	defer gt.done()
+
+	gt.serverWork(t)
+	gt.serverWork(t)
+	trun(t, gt.server, "git", "checkout", "dev.branch")
+	gt.serverWorkUnrelated(t, "")
+	gt.serverWorkUnrelated(t, "")
+	gt.serverWorkUnrelated(t, "")
+	trun(t, gt.server, "git", "checkout", "main")
+
+	wt := filepath.Join(gt.tmpdir, "git-worktree")
+	trun(t, gt.client, "git", "worktree", "add", "-b", "dev.branch", wt, "origin/dev.branch")
+	if err := os.Chdir(wt); err != nil {
+		t.Fatal(err)
+	}
+
+	testMain(t, "sync-branch")
+	testHideRevHashes(t)
+	testPrintedStdout(t, "[dev.branch] all: merge main (REVHASH) into dev.branch")
+}
+
 func TestSyncBranchMergeBack(t *testing.T) {
 	gt := newGitTest(t)
 	defer gt.done()
