--- ../src-base/minecraft/net/minecraft/block/BlockVine.java
+++ ../src-work/minecraft/net/minecraft/block/BlockVine.java
@@ -26,7 +26,7 @@
 import net.minecraftforge.fml.relauncher.Side;
 import net.minecraftforge.fml.relauncher.SideOnly;
 
-public class BlockVine extends Block
+public class BlockVine extends Block implements net.minecraftforge.common.IShearable
 {
     public static final PropertyBool field_176277_a = PropertyBool.func_177716_a("up");
     public static final PropertyBool field_176273_b = PropertyBool.func_177716_a("north");
@@ -416,13 +416,7 @@
 
     public void func_180657_a(World p_180657_1_, EntityPlayer p_180657_2_, BlockPos p_180657_3_, IBlockState p_180657_4_, TileEntity p_180657_5_)
     {
-        if (!p_180657_1_.field_72995_K && p_180657_2_.func_71045_bC() != null && p_180657_2_.func_71045_bC().func_77973_b() == Items.field_151097_aZ)
         {
-            p_180657_2_.func_71029_a(StatList.field_75934_C[Block.func_149682_b(this)]);
-            func_180635_a(p_180657_1_, p_180657_3_, new ItemStack(Blocks.field_150395_bd, 1, 0));
-        }
-        else
-        {
             super.func_180657_a(p_180657_1_, p_180657_2_, p_180657_3_, p_180657_4_, p_180657_5_);
         }
     }
@@ -508,6 +502,16 @@
         return i;
     }
 
+    /*************************FORGE START***********************************/
+    @Override public boolean isLadder(IBlockAccess world, BlockPos pos, EntityLivingBase entity){ return true; }
+    @Override public boolean isShearable(ItemStack item, IBlockAccess world, BlockPos pos){ return true; }
+    @Override
+    public java.util.List<ItemStack> onSheared(ItemStack item, IBlockAccess world, BlockPos pos, int fortune)
+    {
+        return java.util.Arrays.asList(new ItemStack(this, 1));
+    }
+    /*************************FORGE END***********************************/
+
     static final class SwitchEnumFacing
         {
             static final int[] field_177057_a = new int[EnumFacing.values().length];
