diff --git a/hgext/shelve.py b/hgext/shelve.py
index c67c94c0e7aeaf32046c4ae43d58a990dd09320f_aGdleHQvc2hlbHZlLnB5..38373da1af02fb6f1e3154777dfaac35a9da438b_aGdleHQvc2hlbHZlLnB5 100644
--- a/hgext/shelve.py
+++ b/hgext/shelve.py
@@ -770,6 +770,11 @@
         with ui.configoverride({('ui', 'quiet'): True}):
             shelvedfile(repo, basename, 'hg').applybundle()
         shelvectx = repo['tip']
+        # We might not strip the unbundled changeset, so we should keep track of
+        # the unshelve node in case we need to reuse it (eg: unshelve --keep)
+        if node is None:
+            info = {'node': nodemod.hex(node)}
+            shelvedfile(repo, basename, 'shelve').writeinfo(info)
     else:
         shelvectx = repo[node]