--- ../src-base/minecraft/net/minecraft/block/BlockTorch.java
+++ ../src-work/minecraft/net/minecraft/block/BlockTorch.java
@@ -70,7 +70,7 @@
         else
         {
             Block block = p_176594_1_.func_180495_p(p_176594_2_).func_177230_c();
-            return block instanceof BlockFence || block == Blocks.field_150359_w || block == Blocks.field_150463_bK || block == Blocks.field_150399_cn;
+            return block.canPlaceTorchOnTop(p_176594_1_, p_176594_2_);
         }
     }
 
@@ -97,7 +97,7 @@
     {
         BlockPos blockpos1 = p_176595_2_.func_177972_a(p_176595_3_.func_176734_d());
         boolean flag = p_176595_3_.func_176740_k().func_176722_c();
-        return flag && p_176595_1_.func_175677_d(blockpos1, true) || p_176595_3_.equals(EnumFacing.UP) && this.func_176594_d(p_176595_1_, blockpos1);
+        return flag && p_176595_1_.isSideSolid(blockpos1, p_176595_3_, true) || p_176595_3_.equals(EnumFacing.UP) && this.func_176594_d(p_176595_1_, blockpos1);
     }
 
     public IBlockState func_180642_a(World p_180642_1_, BlockPos p_180642_2_, EnumFacing p_180642_3_, float p_180642_4_, float p_180642_5_, float p_180642_6_, int p_180642_7_, EntityLivingBase p_180642_8_)
@@ -120,7 +120,7 @@
 
                 enumfacing1 = (EnumFacing)iterator.next();
             }
-            while (!p_180642_1_.func_175677_d(p_180642_2_.func_177972_a(enumfacing1.func_176734_d()), true));
+            while (!p_180642_1_.isSideSolid(p_180642_2_.func_177972_a(enumfacing1.func_176734_d()), enumfacing1, true));
 
             return this.func_176223_P().func_177226_a(field_176596_a, enumfacing1);
         }
@@ -149,7 +149,7 @@
             EnumFacing enumfacing1 = enumfacing.func_176734_d();
             boolean flag = false;
 
-            if (axis.func_176722_c() && !p_176592_1_.func_175677_d(p_176592_2_.func_177972_a(enumfacing1), true))
+            if (axis.func_176722_c() && !p_176592_1_.isSideSolid(p_176592_2_.func_177972_a(enumfacing1), enumfacing1, true))
             {
                 flag = true;
             }
