--- ../src-base/minecraft/net/minecraft/entity/monster/EntitySilverfish.java
+++ ../src-work/minecraft/net/minecraft/entity/monster/EntitySilverfish.java
@@ -15,6 +15,8 @@
 import net.minecraft.world.World;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 
+import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
+
 public class EntitySilverfish extends EntityMob
 {
     private int allySummonCooldown;
@@ -132,6 +134,13 @@
                             {
                                 if (this.worldObj.getBlock(i + i1, j + l, k + j1) == Blocks.monster_egg)
                                 {
+                                    // CraftBukkit start
+                                    if (CraftEventFactory.callEntityChangeBlockEvent(this, i + i1, j + l, k + j1, Blocks.air, 0).isCancelled())
+                                    {
+                                        continue;
+                                    }
+
+                                    // CraftBukkit end
                                     if (!this.worldObj.getGameRules().getGameRuleBooleanValue("mobGriefing"))
                                     {
                                         int k1 = this.worldObj.getBlockMetadata(i + i1, j + l, k + j1);
@@ -168,6 +177,13 @@
 
                 if (BlockSilverfish.func_150196_a(block))
                 {
+                    // CraftBukkit start
+                    if (CraftEventFactory.callEntityChangeBlockEvent(this, i + Facing.offsetsXForSide[l1], j + Facing.offsetsYForSide[l1], k + Facing.offsetsZForSide[l1], Blocks.monster_egg, Block.getIdFromBlock(BlockSilverfish.getBlockById(i1))).isCancelled())
+                    {
+                        return;
+                    }
+
+                    // CraftBukkit end
                     this.worldObj.setBlock(i + Facing.offsetsXForSide[l1], j + Facing.offsetsYForSide[l1], k + Facing.offsetsZForSide[l1], Blocks.monster_egg, BlockSilverfish.func_150195_a(block, i1), 3);
                     this.spawnExplosionParticle();
                     this.setDead();
