diff --git a/Spigot-Server-Patches/0145-Check-entity-count-additions-and-mark-entities-remov.patch b/Spigot-Server-Patches/0145-Check-entity-count-additions-and-mark-entities-remov.patch
index 46c044127b..aa01b4f9e5 100644
--- a/Spigot-Server-Patches/0145-Check-entity-count-additions-and-mark-entities-remov.patch
+++ b/Spigot-Server-Patches/0145-Check-entity-count-additions-and-mark-entities-remov.patch
@@ -1,27 +1,40 @@
-From cbda3b924454b5badd57f8dc2550d315ca8441bb Mon Sep 17 00:00:00 2001
+From 7fb729ea5b3d71930bb208d8fc8156c0bae02f1f Mon Sep 17 00:00:00 2001
 From: Zach Brown <zach.brown@destroystokyo.com>
 Date: Fri, 22 Apr 2016 20:34:21 -0500
 Subject: [PATCH] Check entity count additions and mark entities removed
 
 
 diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
-index 5c1685d..88f8ab8 100644
+index 5c1685d..137cbc6 100644
 --- a/src/main/java/net/minecraft/server/Chunk.java
 +++ b/src/main/java/net/minecraft/server/Chunk.java
-@@ -661,6 +661,12 @@ public class Chunk {
+@@ -661,6 +661,25 @@ public class Chunk {
              k = this.entitySlices.length - 1;
          }
  
 +        // Paper start - Try to catch plugins doing indecent things
-+        if (entity.aa && entity.getChunkX() == this.locX && entity.getChunkY() == k && entity.getChunkZ() == this.locZ) {
-+            throw new IllegalStateException("Hey Jackass don't do that.");
++        if (entity.aa) {
++            boolean thisChunk = entity.getChunkX() == this.locX && entity.getChunkY() == k && entity.getChunkZ() == this.locZ;
++            String chunkName = entity.getWorld().getWorld().getName() + ":" + entity.getChunkX() + "," + entity.getChunkY() + "," + entity.getChunkZ();
++            if (!thisChunk) {
++                throw new IllegalStateException("Entity Already in another chunk: " + chunkName);
++            } else if (this.entitySlices[k].contains(entity)) {
++                throw new IllegalStateException("Double Chunk Add to: " + chunkName);
++            } else {
++                for (int i1 = 0; i1 < this.entitySlices.length; i1++) {
++                    if (this.entitySlices[i1].contains(entity)) {
++                        throw new IllegalStateException("Entity was found in another slice of this chunk, tried: " + k + ", was in: " + chunkName);
++                    }
++                }
++                new Throwable("Improperly detected double chunk add. Was not actually in this chunk.").printStackTrace();
++            }
 +        }
 +        // Paper end
 +
          entity.aa = true;
          entity.ab = this.locX;
          entity.ac = k;
-@@ -711,6 +717,7 @@ public class Chunk {
+@@ -711,6 +730,7 @@ public class Chunk {
          } else if (entity instanceof IInventory) {
              inventoryEntityCounts[i]--;
          }
@@ -30,5 +43,5 @@ index 5c1685d..88f8ab8 100644
          // Spigot start - decrement creature type count
          // Keep this synced up with World.a(Class)
 -- 
-2.8.0
+2.8.1