          return chunk;
      }
  
-@@ -221,6 +252,11 @@
+@@ -221,6 +249,11 @@
          {
              if (!this.field_73248_b.isEmpty())
              {

+            else
+            {
+                net.minecraft.world.chunk.storage.AnvilChunkLoader loader = (net.minecraft.world.chunk.storage.AnvilChunkLoader) this.field_73247_e;
+
+                // We can only use the queue for already generated chunks
+                if (loader.chunkExists(this.field_73251_h, p_186028_1_, p_186028_2_))
+                {
+                    if (runnable != null)
+                    {
+                        net.minecraftforge.common.chunkio.ChunkIOExecutor.queueChunkLoad(this.field_73251_h, loader, this, p_186028_1_, p_186028_2_, runnable);
+                        return null;
+                    }
+                    else chunk = net.minecraftforge.common.chunkio.ChunkIOExecutor.syncChunkLoad(this.field_73251_h, loader, this, p_186028_1_, p_186028_2_);
+                }
+            }
         }

                 Iterator<Long> iterator = this.field_73248_b.iterator();
 
                 for (int i = 0; i < 100 && iterator.hasNext(); iterator.remove())
@@ -235,6 +268,11 @@
                         this.func_73243_a(chunk);
                         this.field_73244_f.remove(olong);
                         ++i;
