diff --git a/src/music.c b/src/music.c index e59470318..6827ffb68 100644 --- a/src/music.c +++ b/src/music.c @@ -205,7 +205,10 @@ charm_monsters(int distance) continue; if (distu(mtmp->mx, mtmp->my) <= distance) { - if (!resist(mtmp, TOOL_CLASS, 0, NOTELL)) + /* a shopkeeper can't be tamed but tamedog() pacifies an angry + one; do that even if mtmp resists in order to behave the same + as a non-cursed scroll of taming or spell of charm monster */ + if (!resist(mtmp, TOOL_CLASS, 0, NOTELL) || mtmp->isshk) (void) tamedog(mtmp, (struct obj *) 0); } }