diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
index d05f3d4f07..11ae695470 100644
--- a/src/main/java/net/minecraft/server/EntityArrow.java
+++ b/src/main/java/net/minecraft/server/EntityArrow.java
@@ -176,7 +176,13 @@ public class EntityArrow extends Entity {
 
                     //TODO decide if we should create DamageCause.ARROW, DamageCause.PROJECTILE
                     // or leave as DamageCause.ENTITY_ATTACK
-                    EntityDamageByProjectileEvent edbpe = new EntityDamageByProjectileEvent(b.getBukkitEntity(), entity.getBukkitEntity(), this.getBukkitEntity(), EntityDamageEvent.DamageCause.ENTITY_ATTACK, 4);
+                    org.bukkit.entity.Entity shooter = null;
+                    if ((EntityLiving)b != null) {
+                        shooter = new org.bukkit.craftbukkit.entity.CraftLivingEntity(server, b);
+                    } else if ((Entity)b != null) {
+                        shooter = (org.bukkit.entity.Entity) b.getBukkitEntity();
+                    }
+                    EntityDamageByProjectileEvent edbpe = new EntityDamageByProjectileEvent(shooter, entity.getBukkitEntity(), this.getBukkitEntity(), EntityDamageEvent.DamageCause.ENTITY_ATTACK, 4);
 
                     server.getPluginManager().callEvent(edbpe);
                     if(!edbpe.isCancelled()) {