diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
index b1c86eda7e4007698c9e7a5ccbda8012a51cd57e..05d5790889e502027e069b8ba37c4a5a7a5bc532 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/EffectMasterHandler.java
@@ -117,7 +117,6 @@ public final class EffectMasterHandler
 		ManaHealByLevel.class,
 		ManaHealOverTime.class,
 		ManaHealPercent.class,
-		MpByLevel.class,
 		MpConsumePerLevel.class,
 		Mute.class,
 		NoblesseBless.class,
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 27b7792182fa78d4042601edf9609addaef101b1..d7d657deaa4f6a38221dc1cba82214c117e0c89e 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
@@ -60,7 +60,7 @@ public final class Heal extends AbstractEffect
 	{
 		L2Character target = info.getEffected();
 		L2Character activeChar = info.getEffector();
-		if ((target == null) || target.isDead() || target.isDoor())
+		if ((target == null) || target.isDead() || target.isDoor() || target.isInvul())
 		{
 			return;
 		}
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 308782d79acd6dd8b7da6c887bcf7a2aca7e88a9..397e5dd7f0044e88fa932a58e93e6a9146b4d11d 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
@@ -55,7 +55,7 @@ public final class ManaHeal extends AbstractEffect
 	public void onStart(BuffInfo info)
 	{
 		L2Character target = info.getEffected();
-		if ((target == null) || target.isDead() || target.isDoor())
+		if ((target == null) || target.isDead() || target.isDoor() || target.isInvul())
 		{
 			return;
 		}
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 03f24c31b931b9b01c2784372aa7a64aadab829e..af53abac8f54ec60b5d8933deb6020025c4ed5c8 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
@@ -117,16 +117,12 @@ public final class ManaHealByLevel extends AbstractEffect
 		{
 			target.setCurrentMp(amount + target.getCurrentMp());
 		}
-		SystemMessage sm;
+		
+		final SystemMessage sm = SystemMessage.getSystemMessage(info.getEffector().getObjectId() != target.getObjectId() ? SystemMessageId.S2_MP_RESTORED_BY_C1 : SystemMessageId.S1_MP_RESTORED);
 		if (info.getEffector().getObjectId() != target.getObjectId())
 		{
-			sm = SystemMessage.getSystemMessage(SystemMessageId.S2_MP_RESTORED_BY_C1);
 			sm.addCharName(info.getEffector());
 		}
-		else
-		{
-			sm = SystemMessage.getSystemMessage(SystemMessageId.S1_MP_RESTORED);
-		}
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
 	}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MpByLevel.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MpByLevel.java
deleted file mode 100644
index da25320fa6c71d83a319e8959af5e4f7d85a702b..0000000000000000000000000000000000000000
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/MpByLevel.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2004-2013 L2J DataPack
- * 
- * This file is part of L2J DataPack.
- * 
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package handlers.effecthandlers;
-
-import com.l2jserver.gameserver.model.StatsSet;
-import com.l2jserver.gameserver.model.conditions.Condition;
-import com.l2jserver.gameserver.model.effects.AbstractEffect;
-import com.l2jserver.gameserver.model.effects.L2EffectType;
-import com.l2jserver.gameserver.model.skills.BuffInfo;
-import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
-
-/**
- * Mp By Level effect implementation.
- * @author Zoey76
- */
-public final class MpByLevel extends AbstractEffect
-{
-	public MpByLevel(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
-	{
-		super(attachCond, applyCond, set, params);
-	}
-	
-	@Override
-	public L2EffectType getEffectType()
-	{
-		return L2EffectType.BUFF;
-	}
-	
-	@Override
-	public boolean isInstant()
-	{
-		return true;
-	}
-	
-	@Override
-	public void onStart(BuffInfo info)
-	{
-		if ((info.getEffector() == null) || (info.getEffected() == null))
-		{
-			return;
-		}
-		
-		// Calculation
-		final int abs = (int) getValue();
-		final double absorb = ((info.getEffected().getCurrentMp() + abs) > info.getEffected().getMaxMp() ? info.getEffected().getMaxMp() : (info.getEffected().getCurrentMp() + abs));
-		final int restored = (int) (absorb - info.getEffected().getCurrentMp());
-		info.getEffected().setCurrentMp(absorb);
-		// System message
-		final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_MP_RESTORED);
-		sm.addNumber(restored);
-		info.getEffected().sendPacket(sm);
-	}
-}
diff --git a/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml b/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
index 443543bc8082d598a2b895530c5fee09d241ffca..a4e698fd25218fe43465dc08dcb9dcf196860066 100644
--- a/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
+++ b/L2J_DataPack_BETA/dist/game/data/stats/skills/00000-00099.xml
@@ -1273,7 +1273,7 @@
 		</enchant1for>
 		<enchant1for>
 			<effect name="Sweeper" />
-			<effect name="MpByLevel" val="#ench2DrainMp" />
+			<effect name="ManaHealByLevel" val="#ench2DrainMp" />
 			<effect name="ConsumeBody" />
 		</enchant1for>
 	</skill>