diff -cr nethack-3.3.0/src/light.c nethack-3.3.1/src/light.c
*** nethack-3.3.0/src/light.c	Sat Dec 11 00:20:54 1999
--- nethack-3.3.1/src/light.c	Wed Feb 16 16:50:39 2000
***************
*** 216,234 ****
  #define mon_is_local(mon)	((mon)->mx > 0)
  
  struct monst *
! find_mid(nid)
  unsigned nid;
  {
  	struct monst *mtmp;
  
  	if (!nid)
  	    return &youmonst;
! 	for (mtmp = fmon; mtmp; mtmp = mtmp->nmon)
! 	    if (mtmp->m_id == nid) return mtmp;
! 	for (mtmp = migrating_mons; mtmp; mtmp = mtmp->nmon)
! 	    if (mtmp->m_id == nid) return mtmp;
! 	for (mtmp = mydogs; mtmp; mtmp = mtmp->nmon)
! 	    if (mtmp->m_id == nid) return mtmp;
  	return (struct monst *) 0;
  }
  
--- 215,237 ----
  #define mon_is_local(mon)	((mon)->mx > 0)
  
  struct monst *
! find_mid(nid, fmflags)
  unsigned nid;
+ unsigned fmflags;
  {
  	struct monst *mtmp;
  
  	if (!nid)
  	    return &youmonst;
! 	if (fmflags & FM_FMON)
! 		for (mtmp = fmon; mtmp; mtmp = mtmp->nmon)
! 		    if (!DEADMONSTER(mtmp) && mtmp->m_id == nid) return mtmp;
! 	if (fmflags & FM_MIGRATE)
! 		for (mtmp = migrating_mons; mtmp; mtmp = mtmp->nmon)
! 	    	    if (mtmp->m_id == nid) return mtmp;
! 	if (fmflags & FM_MYDOGS)
! 		for (mtmp = mydogs; mtmp; mtmp = mtmp->nmon)
! 	    	    if (mtmp->m_id == nid) return mtmp;
  	return (struct monst *) 0;
  }
  
***************
*** 323,329 ****
  		    ls->id = (genericptr_t) find_oid(nid);
  		} else {
  		    which = 'm';
! 		    ls->id = (genericptr_t) find_mid(nid);
  		}
  		if (!ls->id)
  		    impossible("relink_light_sources: cant find %c_id %d",
--- 326,332 ----
  		    ls->id = (genericptr_t) find_oid(nid);
  		} else {
  		    which = 'm';
! 		    ls->id = (genericptr_t) find_mid(nid, FM_EVERYWHERE);
  		}
  		if (!ls->id)
  		    impossible("relink_light_sources: cant find %c_id %d",
***************
*** 404,410 ****
  		mtmp = (struct monst *)ls->id;
  		ls->id = (genericptr_t)mtmp->m_id;
  #ifdef DEBUG
! 		if (find_mid((unsigned)ls->id) != mtmp)
  		    panic("write_ls: can't find mon #%u!", (unsigned)ls->id);
  #endif
  	    }
--- 407,413 ----
  		mtmp = (struct monst *)ls->id;
  		ls->id = (genericptr_t)mtmp->m_id;
  #ifdef DEBUG
! 		if (find_mid((unsigned)ls->id, FM_EVERYWHERE) != mtmp)
  		    panic("write_ls: can't find mon #%u!", (unsigned)ls->id);
  #endif
  	    }

