diff --git a/src/dothrow.c b/src/dothrow.c index d31622a74..5e420d764 100644 --- a/src/dothrow.c +++ b/src/dothrow.c @@ -1560,6 +1560,7 @@ struct obj *oldslot; /* for thrown-and-return used with !fixinv */ if (mon == &youmonst) { /* the thing was caught */ exercise(A_DEX, TRUE); obj = return_throw_to_inv(obj, wep_mask, twoweap, oldslot); + retouch_object(&obj, !uarmg, FALSE); clear_thrownobj = TRUE; goto throwit_return; } diff --git a/src/zap.c b/src/zap.c index 3112e5f2f..8d04dd0f7 100644 --- a/src/zap.c +++ b/src/zap.c @@ -4880,8 +4880,11 @@ int dx, dy; break; } else { /* we catch it */ tmp_at(DISP_END, 0); - if (m_shot.i == m_shot.n) + if (m_shot.i == m_shot.n) { You("skillfully catch the %s.", obj->otyp == BOOMERANG ? "boomerang" : "chakram"); + retouch_object(&obj, !uarmg, FALSE); + } + return &youmonst; } }