      }
  
      public boolean func_73056_e()
-@@ -285,6 +304,14 @@
-         int j = 0;
-         Iterator iterator = this.field_72993_I.iterator();
- 
-+        doneChunks.retainAll(field_72993_I);
-+        if (doneChunks.size() == field_72993_I.size())
-+        {
-+            doneChunks.clear();
-+        }
-+
-+        final long startTime = System.nanoTime();
-+
-         while (iterator.hasNext())
-         {
-             ChunkCoordIntPair chunkcoordintpair = (ChunkCoordIntPair)iterator.next();
-@@ -294,14 +321,18 @@
-             Chunk chunk = this.func_72964_e(chunkcoordintpair.field_77276_a, chunkcoordintpair.field_77275_b);
-             this.func_147467_a(k, l, chunk);
-             this.field_72984_F.func_76318_c("tickChunk");
--            chunk.func_150804_b(false);
-+            //Limits and evenly distributes the lighting update time
-+            if (System.nanoTime() - startTime <= 4000000 && doneChunks.add(chunkcoordintpair))
-+            {
-+                chunk.func_150804_b(false);
-+            }
-             this.field_72984_F.func_76318_c("thunder");
-             int i1;
-             int j1;
+@@ -301,7 +320,7 @@
              int k1;
              int l1;
  

     }
 
     public void func_72923_a(Entity p_72923_1_)
@@ -1002,6 +1059,11 @@
         }
     }
 

             {
                 this.field_73005_l = this.field_73005_l * 3 + 1013904223;
                 i1 = this.field_73005_l >> 2;
@@ -393,6 +412,9 @@
     public void func_147454_a(int p_147454_1_, int p_147454_2_, int p_147454_3_, Block p_147454_4_, int p_147454_5_, int p_147454_6_)
     {
         NextTickListEntry nextticklistentry = new NextTickListEntry(p_147454_1_, p_147454_2_, p_147454_3_, p_147454_4_);
