diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHeal.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHeal.java
index 24e34ecc11a267c7a859a3ce7b177d73d50432cc..d258c439f943ab273529d84ac0012e3910b44464 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHeal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHeal.java
@@ -52,19 +52,20 @@ public class CpHeal extends L2Effect
 			return false;
 		}
 		
-		StatusUpdate su = new StatusUpdate(target);
 		double amount = calc();
 		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0);
-		
-		target.setCurrentCp(amount + target.getCurrentCp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentCp(amount + target.getCurrentCp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHealPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHealPercent.java
index f0f6d74fbc3a88eee670d58da7a2c2d614e02dc5..a841de31dc2aa1fe84c4c2bc99edccd00bd0c679 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHealPercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHealPercent.java
@@ -51,23 +51,24 @@ public class CpHealPercent extends L2Effect
 		{
 			return false;
 		}
-		StatusUpdate su = new StatusUpdate(target);
+		
 		double amount = 0;
 		double power = calc();
 		boolean full = (power == 100.0);
 		
 		amount = full ? target.getMaxCp() : (target.getMaxCp() * power) / 100.0;
-		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0);
-		
-		target.setCurrentCp(amount + target.getCurrentCp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentCp(amount + target.getCurrentCp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Heal.java
index 25d8d5c966c4491ad899276170a79e9a7758c911..17b165076a119ba56d76634446acfbad0ef502c9 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Heal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Heal.java
@@ -101,10 +101,13 @@ public class Heal extends L2Effect
 		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp()), 0);
-		target.setCurrentHp(amount + target.getCurrentHp());
-		StatusUpdate su = new StatusUpdate(target);
-		su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
-		target.sendPacket(su);
+		if (amount != 0)
+		{
+			target.setCurrentHp(amount + target.getCurrentHp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
+			target.sendPacket(su);
+		}
 		
 		if (target.isPlayer())
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealOverTime.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealOverTime.java
index 020ccd094ba612971565cbf6a8989cd978cd6cdd..44c56e5e5a4c99cf0cedf026618c9b8cb5c08970 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealOverTime.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealOverTime.java
@@ -63,11 +63,7 @@ public class HealOverTime extends L2Effect
 	@Override
 	public boolean onActionTime()
 	{
-		if (getEffected().isDead())
-		{
-			return false;
-		}
-		else if (getEffected().isDoor())
+		if (getEffected().isDead() || getEffected().isDoor())
 		{
 			return false;
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java
index 76cafbf10f75ba4b36220f133d66717938e034f2..8653a3e1674255f0550e7311e1227841c9caf3be 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java
@@ -52,18 +52,20 @@ public class HealPercent extends L2Effect
 			return false;
 		}
 		
-		StatusUpdate su = new StatusUpdate(target);
 		double amount = 0;
 		double power = calc();
 		boolean full = (power == 100.0);
 		
 		amount = full ? target.getMaxHp() : (target.getMaxHp() * power) / 100.0;
-		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp()), 0);
-		
-		target.setCurrentHp(amount + target.getCurrentHp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentHp(amount + target.getCurrentHp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm;
 		if (getEffector().getObjectId() != target.getObjectId())
 		{
@@ -74,11 +76,8 @@ public class HealPercent extends L2Effect
 		{
 			sm = SystemMessage.getSystemMessage(SystemMessageId.S1_HP_RESTORED);
 		}
-		
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHeal.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHeal.java
index 48ffb3c485390e9a7d613007ee4f508aa753f2dd..194738dce79ffa105a714e0f47502d6771cf4940 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHeal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHeal.java
@@ -53,8 +53,6 @@ public class ManaHeal extends L2Effect
 			return false;
 		}
 		
-		StatusUpdate su = new StatusUpdate(target);
-		
 		double amount = calc();
 		
 		if (!getSkill().isStatic())
@@ -64,9 +62,13 @@ public class ManaHeal extends L2Effect
 		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
-		
-		target.setCurrentMp(amount + target.getCurrentMp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentMp(amount + target.getCurrentMp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm;
 		if (getEffector().getObjectId() != target.getObjectId())
 		{
@@ -79,8 +81,6 @@ public class ManaHeal extends L2Effect
 		}
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java
index 18f3d773654fb7cfb7ab14979de9daa0d15c477a..8f6d822b4dad1a0baa1341b159cf5d47eb457ad6 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java
@@ -53,7 +53,6 @@ public class ManaHealByLevel extends L2Effect
 			return false;
 		}
 		
-		StatusUpdate su = new StatusUpdate(target);
 		double amount = calc();
 		
 		// recharged mp influenced by difference between target level and skill level
@@ -107,9 +106,13 @@ public class ManaHealByLevel extends L2Effect
 		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
-		
-		target.setCurrentMp(amount + target.getCurrentMp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentMp(amount + target.getCurrentMp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm;
 		if (getEffector().getObjectId() != target.getObjectId())
 		{
@@ -122,8 +125,6 @@ public class ManaHealByLevel extends L2Effect
 		}
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java
index 06cd62f7afb5a6e5710cda61ffdfe1dded1dac91..36589ca33503df1092af6a923fc41fe23a2e6473 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java
@@ -51,18 +51,21 @@ public class ManaHealPercent extends L2Effect
 		{
 			return false;
 		}
-		StatusUpdate su = new StatusUpdate(target);
+		
 		double amount = 0;
 		double power = calc();
 		boolean full = (power == 100.0);
 		
 		amount = full ? target.getMaxMp() : (target.getMaxMp() * power) / 100.0;
-		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
-		
-		target.setCurrentMp(amount + target.getCurrentMp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentMp(amount + target.getCurrentMp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm;
 		if (getEffector().getObjectId() != target.getObjectId())
 		{
@@ -75,8 +78,6 @@ public class ManaHealPercent extends L2Effect
 		}
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
-		target.sendPacket(su);
 		return true;
 	}