--- ../work/decompile-8eb82bde//net/minecraft/server/BlockDispenser.java	2014-11-28 17:43:42.893707440 +0000
+++ src/main/java/net/minecraft/server/BlockDispenser.java	2014-11-28 17:38:18.000000000 +0000
@@ -8,6 +8,7 @@
     public static final BlockStateBoolean TRIGGERED = BlockStateBoolean.of("triggered");
     public static final RegistryDefault M = new RegistryDefault(new DispenseBehaviorItem());
     protected Random N = new Random();
+    public static boolean eventFired = false; // CraftBukkit
 
     protected BlockDispenser() {
         super(Material.STONE);
@@ -78,6 +79,7 @@
 
                 if (idispensebehavior != IDispenseBehavior.a) {
                     ItemStack itemstack1 = idispensebehavior.a(sourceblock, itemstack);
+                    eventFired = false; // CraftBukkit - reset event status
 
                     tileentitydispenser.setItem(i, itemstack1.count == 0 ? null : itemstack1);
                 }