Program: 12561
Project: 12561
Buggy source:
@Override public void draw(){
  if (recipe == null) {
    return;
  }
  guiRenderer.drawComponentTexture(this,craftableTexture);
  GlStateManager.enableRescaleNormal();
  final ImmutableList<ItemStack> output=recipe.getOutput();
  final ItemStack outputItemStack=output.get(0);
  if (output.size() == 1 && outputItemStack.getItem() != null) {
    RenderHelper.enableGUIStandardItemLighting();
    guiRenderer.renderItem(this,outputItemStack,2,3);
    RenderHelper.disableStandardItemLighting();
    if (outputItemStack.stackSize > 1) {
      final String craftedItemCount=String.format("String_Node_Str",outputItemStack.stackSize);
      final int textWidth=guiRenderer.getStringWidth(craftedItemCount);
      GlStateManager.depthFunc(GL11.GL_ALWAYS);
      guiRenderer.drawStringWithShadow(this,craftedItemCount,16 - textWidth + 2,12,16777215);
      GlStateManager.depthFunc(GL11.GL_LEQUAL);
    }
    guiRenderer.drawStringWithShadow(this,recipe.getDisplayName(),2 + 20,8,16777215);
  }
  final int inputItemCount=recipe.getInput().size();
  for (int j=0; j < inputItemCount; ++j) {
    final ItemStack inputItemStack=recipe.getInput().get(j);
    final String requiredItemCount=String.format("String_Node_Str",inputItemStack.stackSize);
    final int textWidth=guiRenderer.getStringWidth(requiredItemCount);
    final int border=1;
    final int padding=2;
    final int itemSize=16;
    guiRenderer.renderItem(this,inputItemStack,getBounds().getWidth() - border - (itemSize + padding) * (j + border),padding + border);
    GlStateManager.depthFunc(GL11.GL_ALWAYS);
    guiRenderer.drawStringWithShadow(this,requiredItemCount,getBounds().getWidth() - border - (itemSize + padding) * j - textWidth - border,12,16777215);
    GlStateManager.depthFunc(GL11.GL_LEQUAL);
  }
  GlStateManager.disableRescaleNormal();
}

Fixed version (ground truth):
@Override public void draw(){
  if (recipe == null) {
    return;
  }
  super.draw();
  GlStateManager.enableRescaleNormal();
  final ImmutableList<ItemStack> output=recipe.getOutput();
  final ItemStack outputItemStack=output.get(0);
  if (output.size() == 1 && outputItemStack.getItem() != null) {
    RenderHelper.enableGUIStandardItemLighting();
    guiRenderer.renderItem(this,outputItemStack,2,3);
    RenderHelper.disableStandardItemLighting();
    if (outputItemStack.stackSize > 1) {
      final String craftedItemCount=String.format("String_Node_Str",outputItemStack.stackSize);
      final int textWidth=guiRenderer.getStringWidth(craftedItemCount);
      GlStateManager.depthFunc(GL11.GL_ALWAYS);
      guiRenderer.drawStringWithShadow(this,craftedItemCount,16 - textWidth + 2,12,16777215);
      GlStateManager.depthFunc(GL11.GL_LEQUAL);
    }
    guiRenderer.drawStringWithShadow(this,recipe.getDisplayName(),2 + 20,8,16777215);
  }
  final int inputItemCount=recipe.getConsolidatedInput().size();
  for (int j=0; j < inputItemCount; ++j) {
    final ItemStack inputItemStack=recipe.getConsolidatedInput().get(j);
    final String requiredItemCount=String.format("String_Node_Str",inputItemStack.stackSize);
    final int textWidth=guiRenderer.getStringWidth(requiredItemCount);
    final int border=1;
    final int padding=2;
    final int itemSize=16;
    guiRenderer.renderItem(this,inputItemStack,getBounds().getWidth() - border - (itemSize + padding) * (j + border),padding + border);
    GlStateManager.depthFunc(GL11.GL_ALWAYS);
    guiRenderer.drawStringWithShadow(this,requiredItemCount,getBounds().getWidth() - border - (itemSize + padding) * j - textWidth - border,12,16777215);
    GlStateManager.depthFunc(GL11.GL_LEQUAL);
  }
  GlStateManager.disableRescaleNormal();
}