--- ../src-base/minecraft/net/minecraft/entity/ai/EntityAIEatGrass.java
+++ ../src-work/minecraft/net/minecraft/entity/ai/EntityAIEatGrass.java
@@ -6,6 +6,11 @@
 import net.minecraft.util.MathHelper;
 import net.minecraft.world.World;
 
+// CraftBukkit start
+import org.bukkit.craftbukkit.event.CraftEventFactory;
+import org.bukkit.Material;
+// CraftBukkit end
+
 public class EntityAIEatGrass extends EntityAIBase
 {
     private EntityLiving field_151500_b;
@@ -69,7 +74,8 @@
 
             if (this.field_151501_c.getBlock(i, j, k) == Blocks.tallgrass)
             {
-                if (this.field_151501_c.getGameRules().getGameRuleBooleanValue("mobGriefing"))
+                // CraftBukkit
+                if (!CraftEventFactory.callEntityChangeBlockEvent(this.field_151500_b, this.field_151500_b.worldObj.getWorld().getBlockAt(i, j, k), Material.AIR, !this.field_151501_c.getGameRules().getGameRuleBooleanValue("mobGriefing")).isCancelled())
                 {
                     this.field_151501_c.func_147480_a(i, j, k, false);
                 }
@@ -78,7 +84,8 @@
             }
             else if (this.field_151501_c.getBlock(i, j - 1, k) == Blocks.grass)
             {
-                if (this.field_151501_c.getGameRules().getGameRuleBooleanValue("mobGriefing"))
+                // CraftBukkit
+                if (!CraftEventFactory.callEntityChangeBlockEvent(this.field_151500_b, this.field_151500_b.worldObj.getWorld().getBlockAt(i, j - 1, k), Material.DIRT, !this.field_151501_c.getGameRules().getGameRuleBooleanValue("mobGriefing")).isCancelled())
                 {
                     this.field_151501_c.playAuxSFX(2001, i, j - 1, k, Block.getIdFromBlock(Blocks.grass));
                     this.field_151501_c.setBlock(i, j - 1, k, Blocks.dirt, 0, 2);
