@Override
	public void unInvoke()
	{
		// undo the affects of this spell
		if(affected instanceof CagedAnimal)
		{
			final CagedAnimal target=(CagedAnimal)affected;
			final MOB mob=target.unCageMe();
			super.unInvoke();
			if(canBeUninvoked())
			{
				final Ability A=mob.fetchEffect(ID());
				if(A!=null) mob.delEffect(A);
				mob.recoverCharStats();
				mob.recoverPhyStats();
				setChildStuff(mob, target);
				final Room R=CMLib.map().roomLocation(target);
				if(R!=null)
					mob.location().show(mob,null,CMMsg.MSG_OK_VISUAL,_("<S-NAME> feel(s) like <S-HIS-HER> old self again."));

			}

		}
		else
		if(affected instanceof MOB)
		{
			final MOB mob=(MOB)affected;
			super.unInvoke();
			if(canBeUninvoked())
				if((mob.location()!=null)&&(!mob.amDead()))
					mob.location().show(mob,null,CMMsg.MSG_OK_VISUAL,_("<S-NAME> feel(s) like <S-HIS-HER> old self again."));
		}
	}