Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2MonsterInstance.java =================================================================== --- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2MonsterInstance.java (revision 2178) +++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2MonsterInstance.java (working copy) @@ -28,7 +28,7 @@ import net.sf.l2j.gameserver.model.actor.monster.MonsterKnownList; import net.sf.l2j.gameserver.templates.L2NpcTemplate; import net.sf.l2j.gameserver.util.MinionList; /** * This class manages all Monsters. * @@ -43,10 +43,20 @@ //private static Logger _log = Logger.getLogger(L2MonsterInstance.class.getName()); protected final MinionList minionList; @SuppressWarnings("unused") private ScheduledFuture minionMaintainTask; + public void unscheduleMaintainTask() + { + if (minionMaintainTask != null) + { + minionMaintainTask.cancel(true); + minionMaintainTask=null; // only now, this instance can be cleaned up (when task is canceled) + } + } + private static final int MONSTER_MAINTENANCE_INTERVAL = 1000; Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2NpcInstance.java =================================================================== --- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2NpcInstance.java (revision 2178) +++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2NpcInstance.java (working copy) @@ -1457,7 +1457,7 @@ //_decayTask = ClientScheduler.getInstance().scheduleLow(new DecayTask(), 8500); //SpawnTable.getInstance().addDecayTask(this); DecayTask.getInstance().addDecayTask(this); - + if(this instanceof L2MonsterInstance) ((L2MonsterInstance)this).unscheduleMaintainTask(); super.doDie(killer); }