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

     }
 
     /**
@@ -3864,4 +3877,38 @@
     {
         return this.getChunkProvider().findClosestStructure(this, par1Str, par2, par3, par4);
     }

         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()
     {
