diff --git a/hgext/rebase.py b/hgext/rebase.py
index 472fa3b782b1d33d12738c288beac6f7a78e0514_aGdleHQvcmViYXNlLnB5..5528c31c629cbf48c2b043b44c9db3534eba349b_aGdleHQvcmViYXNlLnB5 100644
--- a/hgext/rebase.py
+++ b/hgext/rebase.py
@@ -186,7 +186,7 @@
                 dest = scmutil.revsingle(repo, destf)
 
             if revf:
-                rebaseset = repo.revs('%lr', revf)
+                rebaseset = scmutil.revrange(repo, revf)
             elif srcf:
                 src = scmutil.revrange(repo, [srcf])
                 rebaseset = repo.revs('(%ld)::', src)
diff --git a/tests/test-rebase-bookmarks.t b/tests/test-rebase-bookmarks.t
index 472fa3b782b1d33d12738c288beac6f7a78e0514_dGVzdHMvdGVzdC1yZWJhc2UtYm9va21hcmtzLnQ=..5528c31c629cbf48c2b043b44c9db3534eba349b_dGVzdHMvdGVzdC1yZWJhc2UtYm9va21hcmtzLnQ= 100644
--- a/tests/test-rebase-bookmarks.t
+++ b/tests/test-rebase-bookmarks.t
@@ -159,4 +159,18 @@
   o  0: 'A' bookmarks:
   
 
-  $ cd ..
+ensure that bookmarks given the names of revset functions can be used
+as --rev arguments (issue3950)
+
+  $ hg update -q 3
+  $ echo bimble > bimble
+  $ hg add bimble
+  $ hg commit -q -m 'bisect'
+  $ echo e >> bimble
+  $ hg ci -m bisect2
+  $ echo e >> bimble
+  $ hg ci -m bisect3
+  $ hg book bisect
+  $ hg update -q Y
+  $ hg rebase -r '"bisect"^^::"bisect"^' -r bisect -d Z
+  saved backup bundle to $TESTTMP/a3/.hg/strip-backup/345c90f326a4-backup.hg (glob)