                  worldObj.setBlockTileEntity(xPosition * 16 + i, j, zPosition * 16 + k, tileentity);
              }
              tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition);
-@@ -618,6 +605,18 @@
-         }
-     }
- 
+         }
+-        if(tileentity != null && tileentity.isInvalid())
+-        {
+-            chunkTileEntityMap.remove(chunkposition);
+-            return null;
+-        } else
++	return tileentity;
++    }
++
 +    /* FORGE: Used to remove only invalid TileEntities */
 +    public void cleanChunkBlockTileEntity(int i, int j, int k)
 +    {
 +        ChunkPosition chunkposition = new ChunkPosition(i, j, k);
 +        if(isChunkLoaded)
-+        {
+         {
+-            return tileentity;
 +            TileEntity tileentity = (TileEntity)chunkTileEntityMap.get(chunkposition);
 +	    if(tileentity!=null && tileentity.isInvalid())
 +		    chunkTileEntityMap.remove(chunkposition);
-+        }
-+    }
-+
-     public void addTileEntity(TileEntity tileentity)
-     {
-         int i = tileentity.xCoord - xPosition * 16;
-@@ -626,7 +625,7 @@
+         }
+     }
+ 
+@@ -626,7 +609,7 @@
          setChunkBlockTileEntity(i, j, k, tileentity);
          if(isChunkLoaded)
          {

         try
diff -u -r --strip-trailing-cr ../src_base/minecraft/net/minecraft/src/BlockLadder.java ../src_work/minecraft/net/minecraft/src/BlockLadder.java
--- ../src_base/minecraft/net/minecraft/src/BlockLadder.java	2011-09-26 15:46:44.000000000 -0400
+++ ../src_work/minecraft/net/minecraft/src/BlockLadder.java	2011-09-26 15:46:46.000000000 -0400
@@ -63,6 +63,11 @@
         return super.getSelectedBoundingBoxFromPool(world, i, j, k);
     }

         }
diff -u -r --strip-trailing-cr ../src_base/minecraft_server/net/minecraft/src/BlockRail.java ../src_work/minecraft_server/net/minecraft/src/BlockRail.java
--- ../src_base/minecraft_server/net/minecraft/src/BlockRail.java	2011-09-26 15:46:46.000000000 -0400
+++ ../src_work/minecraft_server/net/minecraft/src/BlockRail.java	2011-09-28 22:34:34.000000000 -0400
@@ -16,12 +16,12 @@
     public static final boolean isRailBlockAt(World world, int i, int j, int k)
     {
