diff --git a/hgext/rebase.py b/hgext/rebase.py
index ea82a23cf8875c66cbe15c4b917d6eb7037cf917_aGdleHQvcmViYXNlLnB5..609ce91670d0e6652bc15538dd40fea7672921ec_aGdleHQvcmViYXNlLnB5 100644
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -172,6 +172,7 @@
                             user=repo[rev].user(),
                             date=repo[rev].date(),
                             extra=extra)
+        repo.dirstate.setbranch(repo[newrev].branch())
         return newrev
     except util.Abort:
         # Invalidate the previous setparents
diff --git a/tests/test-rebase-keep-branch b/tests/test-rebase-keep-branch
index ea82a23cf8875c66cbe15c4b917d6eb7037cf917_dGVzdHMvdGVzdC1yZWJhc2Uta2VlcC1icmFuY2g=..609ce91670d0e6652bc15538dd40fea7672921ec_dGVzdHMvdGVzdC1yZWJhc2Uta2VlcC1icmFuY2g= 100755
--- a/tests/test-rebase-keep-branch
+++ b/tests/test-rebase-keep-branch
@@ -28,3 +28,5 @@
 hg update -C 3
 hg rebase -b 4 -d 3 --keepbranches 2>&1 | sed 's/\(saving bundle to \).*/\1/'
 hg glog --template '{rev}:{desc}:{branches}\n'
+echo '% dirstate branch should be "notdefault"'
+hg branch
diff --git a/tests/test-rebase-keep-branch.out b/tests/test-rebase-keep-branch.out
index ea82a23cf8875c66cbe15c4b917d6eb7037cf917_dGVzdHMvdGVzdC1yZWJhc2Uta2VlcC1icmFuY2gub3V0..609ce91670d0e6652bc15538dd40fea7672921ec_dGVzdHMvdGVzdC1yZWJhc2Uta2VlcC1icmFuY2gub3V0 100644
--- a/tests/test-rebase-keep-branch.out
+++ b/tests/test-rebase-keep-branch.out
@@ -31,3 +31,5 @@
 |
 o  0:c1:
 
+% dirstate branch should be "notdefault"
+notdefault