diff --git a/src/zap.c b/src/zap.c index f27f82d23..ae4c111ad 100644 --- a/src/zap.c +++ b/src/zap.c @@ -5070,7 +5070,8 @@ destroy_one_item(struct obj *obj, int osym, int dmgtyp) quan = obj->quan; switch (osym) { case RING_CLASS: - if (obj->otyp == RIN_SHOCK_RESISTANCE) { + if (((obj->owornmask & W_RING) && uarmg && !is_metallic(uarmg)) + || obj->otyp == RIN_SHOCK_RESISTANCE) { skip++; break; }