  import net.minecraft.client.gui.GuiScreen;
  import net.minecraft.client.renderer.OpenGlHelper;
  import net.minecraft.client.renderer.RenderHelper;
-@@ -203,8 +204,10 @@
+@@ -203,8 +204,11 @@
          GL11.glTranslatef(0.0F, 0.0F, 32.0F);
          this.zLevel = 200.0F;
          itemRenderer.zLevel = 200.0F;
 -        itemRenderer.renderItemAndEffectIntoGUI(this.fontRenderer, this.mc.renderEngine, par1ItemStack, par2, par3);
 -        itemRenderer.renderItemOverlayIntoGUI(this.fontRenderer, this.mc.renderEngine, par1ItemStack, par2, par3 - (this.draggedStack == null ? 0 : 8), par4Str);
-+        FontRenderer font = par1ItemStack.getItem().getFontRenderer(par1ItemStack);
++        FontRenderer font = null;
++        if (par1ItemStack != null) font = par1ItemStack.getItem().getFontRenderer(par1ItemStack);
 +        if (font == null) font = fontRenderer;
 +        itemRenderer.renderItemAndEffectIntoGUI(font, this.mc.renderEngine, par1ItemStack, par2, par3);
 +        itemRenderer.renderItemOverlayIntoGUI(font, this.mc.renderEngine, par1ItemStack, par2, par3 - (this.draggedStack == null ? 0 : 8), par4Str);
          this.zLevel = 0.0F;
          itemRenderer.zLevel = 0.0F;
      }
-@@ -225,7 +228,8 @@
+@@ -225,7 +229,8 @@
              }
          }
  

 
                 if (l > k)
                 {
@@ -296,7 +305,7 @@
             for (int k2 = 0; k2 < par1List.size(); ++k2)
             {
                 String s1 = (String)par1List.get(k2);

     {
         if (!par1List.isEmpty())
         {
@@ -251,7 +261,7 @@
             while (iterator.hasNext())
             {
                 String s = (String)iterator.next();
