@Override
	public void executeMsg(final Environmental myHost, final CMMsg msg)
	{
		super.executeMsg(myHost,msg);
		if((msg.targetMinor()==CMMsg.TYP_READ)
		&&(msg.source()==affected)
		&&(msg.target()!=null)
		&&(invoker()!=null)
		&&(invoker().location()==msg.source().location())
		&&(!CMLib.flags().canBeSeenBy(invoker(),msg.source()))
		&&(CMLib.flags().isInTheGame(invoker(),true))
		&&(CMLib.flags().canBeSeenBy(msg.source(),invoker())))
		{
			final CMMsg msg2=(CMMsg)msg.copyOf();
			msg2.modify(invoker(),msg.target(),msg.tool(),msg.sourceCode(),msg.sourceMessage(),msg.targetCode(),msg.targetMessage(),CMMsg.NO_EFFECT,null);
			msg.target().executeMsg(invoker(),msg2);
		}
	}