          }
      }
  
-@@ -2265,7 +2271,8 @@
+@@ -2265,7 +2272,8 @@
       */
      public boolean isBlockNormalCube(int par1, int par2, int par3)
      {

-        else
-        {
-            this.loadedTileEntityList.addAll(par1Collection);
+            if(((TileEntity)entity).canUpdate()) 
+            {
+                dest.add(entity);
+            }
         }
     }
 
@@ -1686,7 +1706,7 @@
         int var4 = MathHelper.floor_double(par1Entity.posZ);
         byte var5 = 32;
 

         ArrayList var7 = new ArrayList();
 
         for (int var8 = var3; var8 <= var4; ++var8)
@@ -3350,6 +3359,11 @@
                 var8 = null;
             }
 
+            if (var8 != null && var8.isBlockReplaceable(this, par2, par3, par4))
+            {
+                var8 = null;
+            }
+
             return par1 > 0 && var8 == null && var9.canPlaceBlockOnSide(this, par2, par3, par4, par6);
         }
     }
@@ -3827,7 +3841,7 @@
      */
     public int getHeight()
     {
