 +        {
 +            return new ItemStack(Item.boat);
 +        }
++        else if (this instanceof EntityItemFrame)
++        {
++            ItemStack held = ((EntityItemFrame)this).func_82335_i();
++            if (held == null)
++            {
++                return new ItemStack(Item.field_82802_bI);
++            }
++            else
++            {
++                return held.copy();
++            }
++        }
 +        else
 +        {
 +            int id = EntityList.getEntityID(this);

     }
 
     /**
@@ -2107,4 +2139,72 @@
     {
         return String.format("%s[\'%s\'/%d, l=\'%s\', x=%.2f, y=%.2f, z=%.2f]", new Object[] {this.getClass().getSimpleName(), this.getEntityName(), Integer.valueOf(this.entityId), this.worldObj == null ? "~NULL~" : this.worldObj.getWorldInfo().getWorldName(), Double.valueOf(this.posX), Double.valueOf(this.posY), Double.valueOf(this.posZ)});
     }
+
+    /* ================================== Forge Start =====================================*/

--- ../src_base/common/net/minecraft/src/Entity.java
+++ ../src_work/common/net/minecraft/src/Entity.java
@@ -5,6 +5,8 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Random;
+import java.util.UUID;
+import java.util.ArrayList;
 import net.minecraft.server.MinecraftServer;
 
 public abstract class Entity
@@ -197,6 +199,11 @@
     public int dimension;
     protected int field_82152_aq;
     public EnumEntitySize myEntitySize;
+    /** Forge: Used to store custom data for each entity. */
+    private NBTTagCompound customEntityData;
