--- ../src-base/minecraft/net/minecraft/entity/passive/EntitySheep.java
+++ ../src-work/minecraft/net/minecraft/entity/passive/EntitySheep.java
@@ -35,7 +35,7 @@
 import net.minecraftforge.fml.relauncher.Side;
 import net.minecraftforge.fml.relauncher.SideOnly;
 
-public class EntitySheep extends EntityAnimal
+public class EntitySheep extends EntityAnimal implements net.minecraftforge.common.IShearable
 {
     private final InventoryCrafting field_90016_e = new InventoryCrafting(new Container()
     {
@@ -142,11 +142,12 @@
         }
     }
 
+    @SuppressWarnings("unused")
     public boolean func_70085_c(EntityPlayer p_70085_1_)
     {
         ItemStack itemstack = p_70085_1_.field_71071_by.func_70448_g();
 
-        if (itemstack != null && itemstack.func_77973_b() == Items.field_151097_aZ && !this.func_70892_o() && !this.func_70631_g_())
+        if (false && itemstack != null && itemstack.func_77973_b() == Items.field_151097_aZ && !this.func_70892_o() && !this.func_70631_g_()) //Forge: Moved to onSheared
         {
             if (!this.field_70170_p.field_72995_K)
             {
@@ -334,4 +335,19 @@
         field_175514_bm.put(EnumDyeColor.RED, new float[] {0.6F, 0.2F, 0.2F});
         field_175514_bm.put(EnumDyeColor.BLACK, new float[] {0.1F, 0.1F, 0.1F});
     }
+
+    @Override public boolean isShearable(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos){ return !this.func_70892_o() && !this.func_70631_g_(); }
+    @Override
+    public java.util.List<ItemStack> onSheared(ItemStack item, net.minecraft.world.IBlockAccess world, BlockPos pos, int fortune)
+    {
+        this.func_70893_e(true);
+        int i = 1 + this.field_70146_Z.nextInt(3);
+
+        java.util.List<ItemStack> ret = new java.util.ArrayList<ItemStack>();
+        for (int j = 0; j < i; ++j)
+            ret.add(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, this.func_175509_cj().func_176765_a()));
+
+        this.func_85030_a("mob.sheep.shear", 1.0F, 1.0F);
+        return ret;
+    }
 }
