--- ../src_base/common/net/minecraft/src/BlockContainer.java
+++ ../src_work/common/net/minecraft/src/BlockContainer.java
@@ -20,7 +20,7 @@
     public void onBlockAdded(World par1World, int par2, int par3, int par4)
     {
         super.onBlockAdded(par1World, par2, par3, par4);
-        par1World.setBlockTileEntity(par2, par3, par4, this.createNewTileEntity(par1World));
+        par1World.setBlockTileEntity(par2, par3, par4, this.createNewTileEntity(par1World, par1World.getBlockMetadata(par2, par3, par4)));
     }
 
     /**
@@ -36,6 +36,12 @@
      * each class overrdies this to return a new <className>
      */
     public abstract TileEntity createNewTileEntity(World var1);
+    
+
+    public TileEntity createNewTileEntity(World world, int metadata)
+    {
+        return createNewTileEntity(world);
+    }
 
     /**
      * Called when the block receives a BlockEvent - see World.addBlockEvent. By default, passes it on to the tile

--- ../src_base/common/net/minecraft/src/BlockContainer.java
+++ ../src_work/common/net/minecraft/src/BlockContainer.java
@@ -20,7 +20,7 @@
     public void onBlockAdded(World par1World, int par2, int par3, int par4)
     {
         super.onBlockAdded(par1World, par2, par3, par4);
-        par1World.setBlockTileEntity(par2, par3, par4, this.createNewTileEntity(par1World));
+        par1World.setBlockTileEntity(par2, par3, par4, this.createTileEntity(par1World, par1World.getBlockMetadata(par2, par3, par4)));
     }
 
     /**
@@ -36,6 +36,12 @@
      * each class overrdies this to return a new <className>
      */
     public abstract TileEntity createNewTileEntity(World var1);
+    
+
+    public TileEntity createNewTileEntity(World world, int metadata)
+    {
+        return createNewTileEntity(world);
+    }
 
     /**
      * Called when the block receives a BlockEvent - see World.addBlockEvent. By default, passes it on to the tile

Fix call to createTileEntity on blocks that extend BlockContainer.
Fix call to createTileEntity on blocks that extend BlockContainer.
