public boolean cancelService(WorshipService service)
	{
		if(service == null) return false;
		final Room room = service.room;
		final MOB mob = service.cleric;
		MOB M=null;
		for(int m=0;m<room.numInhabitants();m++)
		{
			M=room.fetchInhabitant(m);
			if(M==null) continue;
			if(M.getWorshipCharID().equals(Name()))
			{
				final Ability A=M.fetchEffect("Skill_Convert");
				if(A!=null) A.unInvoke();
			}
		}
		room.showHappens(CMMsg.MASK_ALWAYS, _("The service conducted by @x1 has been cancelled.",mob.Name()));
		if(mob.location()!=room)
			mob.tell(_("Your service has been cancelled."));
		undoService(service.parishaners);
		synchronized(services)
		{
			services.remove(service);
			final Ability A=CMLib.law().getClericInfusion(service.room);
			if(A!=null) A.setAbilityCode(0);
		}
		trigServiceParts.remove(mob.Name());
		trigServiceTimes.remove(mob.Name());
		return true;
	}