 --- ../src-base/minecraft/net/minecraft/network/NetHandlerPlayServer.java
 +++ ../src-work/minecraft/net/minecraft/network/NetHandlerPlayServer.java
-@@ -612,7 +612,10 @@
+@@ -159,6 +159,7 @@
+ 
+     public void update()
+     {
++        if (this.playerEntity.playerNetServerHandler != this) return; // FORGE: sometimes the netqueue will tick while login is occuring, causing an NPE. We shouldn't tick until the connection is complete
+         this.func_184342_d();
+         this.playerEntity.onUpdateEntity();
+         this.playerEntity.setPositionAndRotation(this.field_184349_l, this.field_184350_m, this.field_184351_n, this.playerEntity.rotationYaw, this.playerEntity.rotationPitch);
+@@ -612,7 +613,10 @@
                  double d2 = this.playerEntity.posZ - ((double)blockpos.getZ() + 0.5D);
                  double d3 = d0 * d0 + d1 * d1 + d2 * d2;
  

                 {
                     return;
                 }
@@ -670,7 +673,9 @@
 
         if (blockpos.getY() < this.serverController.getBuildLimit() - 1 || enumfacing != EnumFacing.UP && blockpos.getY() < this.serverController.getBuildLimit())
         {

             {
                 this.playerEntity.theItemInWorldManager.func_187251_a(this.playerEntity, worldserver, itemstack, enumhand, blockpos, enumfacing, p_184337_1_.func_187026_d(), p_184337_1_.func_187025_e(), p_184337_1_.func_187020_f());
             }
@@ -689,6 +695,7 @@
         if (itemstack != null && itemstack.stackSize == 0)
         {
             this.playerEntity.func_184611_a(enumhand, (ItemStack)null);
