diff --git a/game.cpp b/game.cpp
index 819638d6..193fbc68 100644
--- a/game.cpp
+++ b/game.cpp
@@ -430,7 +430,7 @@ EX bool canPushThumperOn(movei mi, cell *player) {
   return
     passable(tgt, thumper, P_MIRROR) &&
     passable(tgt, player, P_MIRROR) &&
-    !tgt->item;
+    (!tgt->item || dice::on(thumper));
   }
 
 EX void activateActiv(cell *c, bool msg) {