@Override
	public boolean okMessage(final Environmental myHost, final CMMsg msg)
	{
		if(!super.okMessage(myHost, msg))
			return false;
		if((msg.source()==affected)
		&&(myListen != null)
		&&(msg.tool() == myListen)
		&&(msg.target() instanceof Room)
		&&(msg.target() != msg.source().location())
		&&(CMLib.flags().isUnderWateryRoom((Room)msg.target())))
		{
			if(msg.source().isMine(msg.tool()))
			{
				if(!super.proficiencyCheck(msg.source(), super.getXLEVELLevel(msg.source())*5, false))
				{
					msg.source().tell(L("You don't hear anything."));
					return false;
				}
				else
				{
					super.helpProficiency(msg.source(), super.getXLEVELLevel(msg.source()));
				}
			}
			else
			{
				myListen = null;
			}
		}
		return true;
	}