              }
  
              if (this.field_71307_n.func_76468_d())
-@@ -681,15 +662,18 @@
+@@ -671,25 +652,30 @@
+             {
+                 try
+                 {
+-                    ((FutureTask)this.field_175589_i.poll()).run();
++                    FutureTask task = (FutureTask)this.field_175589_i.poll();
++                    task.run(); // Run the task
++                    task.get(); // Poll the result, which throws an error if the task errored.
+                 }
+                 catch (Throwable throwable2)
+                 {
+-                    field_147145_h.fatal(throwable2);
++                    field_147145_h.catching(org.apache.logging.log4j.Level.FATAL, throwable2); //Forge actually print the error correctly.
+                 }
+             }
          }
  
          this.field_71304_b.func_76318_c("levels");

                 this.field_71304_b.func_76320_a(worldserver.func_72912_H().func_76065_j());
 
                 if (this.field_71315_w % 20 == 0)
@@ -733,9 +717,11 @@
                 this.field_71304_b.func_76319_b();
             }
 

                 worldserver.func_73041_k();
             }
         }
@@ -1607,7 +1602,6 @@
         this.field_71319_s = p_71208_1_;
     }
 
