public void obliterateRoom(Room deadRoom)
	{
		for(final Enumeration<Ability> a=deadRoom.effects();a.hasMoreElements();)
		{
			final Ability A=a.nextElement();
			if(A!=null)
			{
				A.unInvoke();
				deadRoom.delEffect(A);
			}
		}
		try
		{
			for(final Enumeration<Room> r=rooms();r.hasMoreElements();)
			{
				Room R=r.nextElement();
				boolean changes=false;
				synchronized(("SYNC"+R.roomID()).intern())
				{
					R=getRoom(R);
					if(R!=null)
					{
						for(int d=Directions.NUM_DIRECTIONS()-1;d>=0;d--)
						{
							final Room thatRoom=R.rawDoors()[d];
							if(thatRoom==deadRoom)
							{
								R.rawDoors()[d]=null;
								changes=true;
								if((R.getRawExit(d)!=null)&&(R.getRawExit(d).isGeneric()))
								{
									final Exit GE=R.getRawExit(d);
									GE.setTemporaryDoorLink(deadRoom.roomID());
								}
							}
						}
					}
				}
				if(changes)
					CMLib.database().DBUpdateExits(R);
			}
		}
		catch (final NoSuchElementException e)
		{
		}
		emptyRoom(deadRoom,null,true);
		deadRoom.destroy();
		if(deadRoom instanceof GridLocale)
			((GridLocale)deadRoom).clearGrid(null);
		CMLib.database().DBDeleteRoom(deadRoom);
	}