              String s2 = this.field_71437_Z.func_71195_b_();
  
              if (s2 != null)
-@@ -2141,6 +2165,7 @@
+@@ -2142,6 +2166,7 @@
              this.field_110448_aq.func_148529_f();
              this.func_71351_a((ServerData)null);
              this.field_71455_al = false;

         this.func_71403_a((WorldClient)null);
         System.gc();
         ISaveHandler isavehandler = this.field_71469_aa.func_75804_a(p_71371_1_, false);
@@ -2066,6 +2084,12 @@
 
         while (!this.field_71437_Z.func_71200_ad())
         {

             }
 
             if (this.field_71429_W > 0)
@@ -1836,6 +1850,7 @@
                         }
                     }
                 }
+                FMLCommonHandler.instance().fireKeyInput();
             }
 
             for (j = 0; j < 9; ++j)
@@ -2026,12 +2041,15 @@
             this.field_71453_ak.func_74428_b();
         }
 
