From a bug report. I haven't looked closely, but I think this bug is just
in the development code. If you dig in a shop with a wand while carrying
unpaid stuff, the shopkeeper would grab your pack, including the wand but
w/o clearing current_wand. It seems the right thing is to just not grab
the current_wand, since it's not in your pack while you're zapping it.
In 3.4.0, you lost the wand too.
if ((obj->owornmask & ~(W_SWAPWEP|W_QUIVER)) != 0 ||
(obj == uswapwep && u.twoweap) ||
(obj->otyp == LEASH && obj->leashmon)) continue;
+ if (obj == current_wand) continue;
setnotworn(obj);
freeinv(obj);
subfrombill(obj, shkp);