diff --git a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
index fa61b5b83..114dd0cb4 100644
--- a/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
+++ b/EssentialsProtect/src/com/earth2me/essentials/protect/EssentialsProtectEntityListener.java
@@ -53,21 +53,24 @@ public class EssentialsProtectEntityListener extends EntityListener
 
 			if (EssentialsProtect.playerSettings.get("protect.disable.contactdmg") && cause == DamageCause.CONTACT
 				&& !(event.getEntity() instanceof Player
-					 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.contact")))
+					 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.contact")
+					 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 			{
 				event.setCancelled(true);
 				return;
 			}
 			if (EssentialsProtect.playerSettings.get("protect.disable.lavadmg") && cause == DamageCause.LAVA
 				&& !(event.getEntity() instanceof Player
-					 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.lava")))
+					 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.lava")
+					 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 			{
 				event.setCancelled(true);
 				return;
 			}
 			if (EssentialsProtect.guardSettings.get("protect.prevent.tnt-explosion") && cause == DamageCause.BLOCK_EXPLOSION
 				&& !(event.getEntity() instanceof Player
-					 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.tnt")))
+					 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.tnt")
+					 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 			{
 				event.setCancelled(true);
 				return;
@@ -100,7 +103,8 @@ public class EssentialsProtectEntityListener extends EntityListener
 			{
 				if (eAttack instanceof Creeper && EssentialsProtect.guardSettings.get("protect.prevent.creeper-explosion")
 					&& !(event.getEntity() instanceof Player
-						 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.creeper")))
+						 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.creeper")
+						 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 				{
 					event.setCancelled(true);
 					return;
@@ -108,7 +112,8 @@ public class EssentialsProtectEntityListener extends EntityListener
 
 				if (eAttack instanceof Creeper && EssentialsProtect.guardSettings.get("protect.prevent.creeper-playerdamage")
 					&& !(event.getEntity() instanceof Player
-						 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.creeper")))
+						 && Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.creeper")
+						 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 				{
 					event.setCancelled(true);
 					return;
@@ -120,7 +125,8 @@ public class EssentialsProtectEntityListener extends EntityListener
 		{
 			if (event.getEntity() instanceof Player
 				&& EssentialsProtect.playerSettings.get("protect.disable.projectiles")
-				&& !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.projectiles"))
+				&& !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.projectiles")
+				&& !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable"))
 			{
 				event.setCancelled(true);
 				return;
@@ -132,33 +138,38 @@ public class EssentialsProtectEntityListener extends EntityListener
 		if (casualty instanceof Player)
 		{
 			if (EssentialsProtect.playerSettings.get("protect.disable.fall") && cause == DamageCause.FALL
-				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.fall")))
+				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.fall")
+					 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 			{
 				event.setCancelled(true);
 				return;
 			}
 
 			if (EssentialsProtect.playerSettings.get("protect.disable.suffocate") && cause == DamageCause.SUFFOCATION
-				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.suffocation")))
+				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.suffocation")
+					 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 			{
 				event.setCancelled(true);
 				return;
 			}
 			if (EssentialsProtect.playerSettings.get("protect.disable.firedmg") && (cause == DamageCause.FIRE
 																					|| cause == DamageCause.FIRE_TICK)
-				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.fire")))
+				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.fire")
+					 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 			{
 				event.setCancelled(true);
 				return;
 			}
 			if (EssentialsProtect.playerSettings.get("protect.disable.drown") && cause == DamageCause.DROWNING
-				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.drowning")))
+				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.drowning")
+					 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 			{
 				event.setCancelled(true);
 				return;
 			}
 			if (EssentialsProtect.playerSettings.get("protect.disable.lightning") && cause == DamageCause.LIGHTNING
-				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.lightning")))
+				&& !(Essentials.getStatic().getUser(casualty).isAuthorized("essentials.protect.damage.lightning")
+					 && !Essentials.getStatic().getUser(event.getEntity()).isAuthorized("essentials.protect.damage.disable")))
 			{
 				event.setCancelled(true);
 				return;