--- a/net/minecraft/server/BlockPlant.java
+++ b/net/minecraft/server/BlockPlant.java
@@ -40,6 +40,11 @@
 
     protected void e(World world, BlockPosition blockposition, IBlockData iblockdata) {
         if (!this.f(world, blockposition, iblockdata)) {
+            // CraftBukkit start
+            if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockPhysicsEvent(world, blockposition).isCancelled()) {
+                return;
+            }
+            // CraftBukkit end
             this.b(world, blockposition, iblockdata, 0);
             world.setTypeAndData(blockposition, Blocks.AIR.getBlockData(), 3);
         }