Index: src/stash.c
==================================================================
--- src/stash.c
+++ src/stash.c
@@ -604,19 +604,23 @@
       undo_begin();
       undo_save_stash(0);
       stash_drop(stashid);
       undo_finish();
     }
+    stashid = stash_get_id(0);
+    db_lset_int("stash-next", stashid+1);
   }else
   if( memcmp(zCmd, "pop", nCmd)==0 ){
     if( g.argc>3 ) usage("pop");
     stashid = stash_get_id(0);
     undo_begin();
     stash_apply(stashid, 0);
     undo_save_stash(stashid);
     undo_finish();
     stash_drop(stashid);
+    stashid = stash_get_id(0);
+    db_lset_int("stash-next", stashid+1);
   }else
   if( memcmp(zCmd, "apply", nCmd)==0 ){
     if( g.argc>4 ) usage("apply STASHID");
     stashid = stash_get_id(g.argc==4 ? g.argv[3] : 0);
     undo_begin();

