diff --git a/CraftBukkit-Patches/0089-Update-Client-s-Hand-when-BlockPlaceEvent-Cancelled.patch b/CraftBukkit-Patches/0089-Update-Client-s-Hand-when-BlockPlaceEvent-Cancelled.patch
new file mode 100644
index 0000000000..7b79dff22c
--- /dev/null
+++ b/CraftBukkit-Patches/0089-Update-Client-s-Hand-when-BlockPlaceEvent-Cancelled.patch
@@ -0,0 +1,35 @@
+From f9172bc5ec67e5f0a52b1e635ca2f646980e55b3 Mon Sep 17 00:00:00 2001
+From: bloodshot <jdroque@gmail.com>
+Date: Mon, 6 Jan 2014 18:02:01 -0500
+Subject: [PATCH] Update Client's Hand when BlockPlaceEvent Cancelled
+
+Send a Packet103SetSlot to client when a BlockPlaceEvent is cancelled.
+
+Fixes BUKKIT-5284
+
+Currently, whenever a player places a block in a protected area the
+equipped itemstack size on client is never updated properly since the
+client thinks the block was placed. The reason this happens is because
+ItemStack.matches returns true since the server does not decrement stack
+size if a BlockPlaceEvent is cancelled. This causes
+PlayerConnection.a(handlePlace) not to send the appropriate packet to
+client which causes the bug.
+
+diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
+index f7fdca3..91de23b 100644
+--- a/src/main/java/net/minecraft/server/PlayerConnection.java
++++ b/src/main/java/net/minecraft/server/PlayerConnection.java
+@@ -626,7 +626,9 @@ public class PlayerConnection implements PacketPlayInListener {
+                 return;
+             }
+ 
+-            this.player.playerInteractManager.interact(this.player, worldserver, itemstack, i, j, k, l, packetplayinblockplace.h(), packetplayinblockplace.i(), packetplayinblockplace.j());
++            if (!this.player.playerInteractManager.interact(this.player, worldserver, itemstack, i, j, k, l, packetplayinblockplace.h(), packetplayinblockplace.i(), packetplayinblockplace.j())) {
++                always = true; // force Packet103SetSlot to be sent to client to update ItemStack count
++            }
+             // CraftBukkit end
+ 
+             flag = true;
+-- 
+1.8.3.2
+