From ce57b30bd5c30b3b97a3a4ca15f659155d3e4467 Mon Sep 17 00:00:00 2001
From: FrozenBrain <carstenbamsti@googlemail.com>
Date: Sun, 23 Mar 2014 01:49:13 +0100
Subject: [PATCH] Fix TileEntities getting ticked after being queued for
 removal


diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index ca8d029..e576397 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1359,6 +1359,12 @@ public abstract class World implements IBlockAccess {
         timings.entityTick.stopTiming(); // Spigot
         this.methodProfiler.c("blockEntities");
         timings.tileEntityTick.startTiming(); // Spigot
+        // Spigot start - brought up from below
+        if (!this.b.isEmpty()) {
+            this.tileEntityList.removeAll(this.b);
+            this.b.clear();
+        }
+        // Spigot End
         this.M = true;
         Iterator iterator = this.tileEntityList.iterator();
 
@@ -1407,10 +1413,6 @@ public abstract class World implements IBlockAccess {
         timings.tileEntityTick.stopTiming(); // Spigot
         timings.tileEntityPending.startTiming(); // Spigot
         this.M = false;
-        if (!this.b.isEmpty()) {
-            this.tileEntityList.removeAll(this.b);
-            this.b.clear();
-        }
 
         this.methodProfiler.c("pendingBlockEntities");
         if (!this.a.isEmpty()) {
-- 
1.8.3.2