diff --git a/mercurial/shelve.py b/mercurial/shelve.py
index 61f8fc12e16735d7a6d55ed0dcadabdc1dc073a1_bWVyY3VyaWFsL3NoZWx2ZS5weQ==..c062874a35dbc1a68e2f28f14857f509f8f7b197_bWVyY3VyaWFsL3NoZWx2ZS5weQ== 100644
--- a/mercurial/shelve.py
+++ b/mercurial/shelve.py
@@ -625,7 +625,7 @@
     info = []
     seen = set()
     for (filename, _type) in names:
-        name, ext = filename.rsplit(b'.', 1)
+        name = filename.rsplit(b'.', 1)[0]
         if name in seen:
             continue
         seen.add(name)
diff --git a/tests/test-shelve2.t b/tests/test-shelve2.t
index 61f8fc12e16735d7a6d55ed0dcadabdc1dc073a1_dGVzdHMvdGVzdC1zaGVsdmUyLnQ=..c062874a35dbc1a68e2f28f14857f509f8f7b197_dGVzdHMvdGVzdC1zaGVsdmUyLnQ= 100644
--- a/tests/test-shelve2.t
+++ b/tests/test-shelve2.t
@@ -779,10 +779,10 @@
 
 # A file with an unexpected extension
   $ touch .hg/shelved/junk3
-  $ hg shelve -l 2>&1 | grep ValueError
-  ValueError: * (glob)
-  $ hg unshelve 2>&1 | grep ValueError
-  ValueError: * (glob)
+  $ hg shelve -l
+  $ hg unshelve
+  abort: no shelved changes to apply!
+  [20]
   $ hg shelve -d junk3
   abort: shelved change 'junk3' not found
   [10]