diff --git a/nms-patches/BlockSnowBlock.patch b/nms-patches/BlockSnowBlock.patch
new file mode 100644
index 0000000000..532914933e
--- /dev/null
+++ b/nms-patches/BlockSnowBlock.patch
@@ -0,0 +1,14 @@
+--- a/net/minecraft/server/BlockSnowBlock.java
++++ b/net/minecraft/server/BlockSnowBlock.java
+@@ -20,6 +20,11 @@
+ 
+     public void b(World world, BlockPosition blockposition, IBlockData iblockdata, Random random) {
+         if (world.getBrightness(EnumSkyBlock.BLOCK, blockposition) > 11) {
++            // CraftBukkit start
++            if (org.bukkit.craftbukkit.event.CraftEventFactory.callBlockFadeEvent(world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()), Blocks.AIR).isCancelled()) {
++                return;
++            }
++            // CraftBukkit end
+             this.b(world, blockposition, world.getType(blockposition), 0);
+             world.setAir(blockposition);
+         }