--- src.v4/hack.c	Sun Feb 23 09:43:27 2003
+++ src/hack.c	Sat Mar  1 14:42:34 2003
@@ -115,9 +115,14 @@
 			 !(ttmp && ((ttmp->ttyp == PIT) ||
 				    (ttmp->ttyp == SPIKED_PIT))))) {
 		if (Blind) feel_location(sx, sy);
-		if (canspotmon(mtmp))
-		    pline("There's %s on the other side.", a_monnam(mtmp));
-		else {
+		if (canspotmon(mtmp)) {
+		    boolean by_name = (mtmp->data->geno & G_UNIQ ||
+				       mtmp->isshk || mtmp->mnamelth);
+		    if (by_name && !Hallucination)
+			pline("%s is on the other side.", Monnam(mtmp));
+		    else
+			pline("There's %s on the other side.", a_monnam(mtmp));
+		} else {
 		    You_hear("a monster behind %s.", the(xname(otmp)));
 		    map_invisible(rx, ry);
 		}
