--- ../src-base/minecraft/net/minecraft/potion/PotionEffect.java
+++ ../src-work/minecraft/net/minecraft/potion/PotionEffect.java
@@ -19,6 +19,8 @@
     private boolean field_100013_f;
     private boolean field_180156_h;
     private static final String __OBFID = "CL_00001529";
+    /** List of ItemStack that can cure the potion effect **/
+    private java.util.List<net.minecraft.item.ItemStack> curativeItems;
 
     public PotionEffect(int p_i1574_1_, int p_i1574_2_)
     {
@@ -37,6 +39,8 @@
         this.field_76461_c = p_i45896_3_;
         this.field_82724_e = p_i45896_4_;
         this.field_180156_h = p_i45896_5_;
+        this.curativeItems = new java.util.ArrayList<net.minecraft.item.ItemStack>();
+        this.curativeItems.add(new net.minecraft.item.ItemStack(net.minecraft.init.Items.field_151117_aB));
     }
 
     public PotionEffect(PotionEffect p_i1577_1_)
@@ -46,6 +50,7 @@
         this.field_76461_c = p_i1577_1_.field_76461_c;
         this.field_82724_e = p_i1577_1_.field_82724_e;
         this.field_180156_h = p_i1577_1_.field_180156_h;
+        this.curativeItems = p_i1577_1_.curativeItems;
     }
 
     public void func_76452_a(PotionEffect p_76452_1_)
@@ -224,4 +229,62 @@
     {
         return this.field_100013_f;
     }
+
+    /* ======================================== FORGE START =====================================*/
+    /***
+     * Returns a list of curative items for the potion effect
+     * @return The list (ItemStack) of curative items for the potion effect
+     */
+    public java.util.List<net.minecraft.item.ItemStack> getCurativeItems()
+    {
+        return this.curativeItems;
+    }
+
+    /***
+     * Checks the given ItemStack to see if it is in the list of curative items for the potion effect
+     * @param stack The ItemStack being checked against the list of curative items for the potion effect
+     * @return true if the given ItemStack is in the list of curative items for the potion effect, false otherwise
+     */
+    public boolean isCurativeItem(net.minecraft.item.ItemStack stack)
+    {
+        boolean found = false;
+        for (net.minecraft.item.ItemStack curativeItem : this.curativeItems)
+        {
+            if (curativeItem.func_77969_a(stack))
+            {
+                found = true;
+            }
+        }
+
+        return found;
+    }
+
+    /***
+     * Sets the array of curative items for the potion effect
+     * @param curativeItems The list of ItemStacks being set to the potion effect
+     */
+    public void setCurativeItems(java.util.List<net.minecraft.item.ItemStack> curativeItems)
+    {
+        this.curativeItems = curativeItems;
+    }
+
+    /***
+     * Adds the given stack to list of curative items for the potion effect
+     * @param stack The ItemStack being added to the curative item list
+     */
+    public void addCurativeItem(net.minecraft.item.ItemStack stack)
+    {
+        boolean found = false;
+        for (net.minecraft.item.ItemStack curativeItem : this.curativeItems)
+        {
+            if (curativeItem.func_77969_a(stack))
+            {
+                found = true;
+            }
+        }
+        if (!found)
+        {
+            this.curativeItems.add(stack);
+        }
+    }
 }
