--- ../src-base/minecraft/net/minecraft/block/BlockLog.java
+++ ../src-work/minecraft/net/minecraft/block/BlockLog.java
@@ -38,9 +38,9 @@
                 BlockPos blockpos1 = (BlockPos)iterator.next();
                 IBlockState iblockstate1 = p_180663_1_.func_180495_p(blockpos1);
 
-                if (iblockstate1.func_177230_c().func_149688_o() == Material.field_151584_j && !((Boolean)iblockstate1.func_177229_b(BlockLeaves.field_176236_b)).booleanValue())
+                if (iblockstate1.func_177230_c().isLeaves(p_180663_1_, blockpos1))
                 {
-                    p_180663_1_.func_180501_a(blockpos1, iblockstate1.func_177226_a(BlockLeaves.field_176236_b, Boolean.valueOf(true)), 4);
+                    iblockstate1.func_177230_c().beginLeavesDecay(p_180663_1_, blockpos1);
                 }
             }
         }
@@ -51,6 +51,9 @@
         return super.func_180642_a(p_180642_1_, p_180642_2_, p_180642_3_, p_180642_4_, p_180642_5_, p_180642_6_, p_180642_7_, p_180642_8_).func_177226_a(field_176299_a, BlockLog.EnumAxis.func_176870_a(p_180642_3_.func_176740_k()));
     }
 
+    @Override public boolean canSustainLeaves(net.minecraft.world.IBlockAccess world, BlockPos pos){ return true; }
+    @Override public boolean isWood(net.minecraft.world.IBlockAccess world, BlockPos pos){ return true; }
+
     public static enum EnumAxis implements IStringSerializable
     {
         X("x"),
