diff --git a/TODO.txt b/TODO.txt
index a64ee32..4ce5c26 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -34,7 +34,6 @@ food		No		Extra recipes
 						Various mashes
 -------------------------------------------------------------------------------------------------------
 materials		No		Alloys
-							Pig iron
 							Steel
 							Brass
 							Alnico
diff --git a/src/java/mmm/materials/Materials.java b/src/java/mmm/materials/Materials.java
index a81fde8..237a523 100644
--- a/src/java/mmm/materials/Materials.java
+++ b/src/java/mmm/materials/Materials.java
@@ -33,6 +33,7 @@ public class Materials
 	public static final Item ITEM_CUPRITE;
 	public static final Item ITEM_COKE;
 	public static final Item ITEM_CASSITERITE;
+	public static final Item ITEM_PIG_IRON_INGOT;
 
 	public static final MOre ORE_COPPER;
 	public static final MOre ORE_MALACHITE;
@@ -60,6 +61,8 @@ public class Materials
 		ITEM_CUPRITE = Materials.makeItem( "cuprite" );
 		ITEM_COKE = Materials.makeFuel( "coke" , 9600 );
 		ITEM_CASSITERITE = Materials.makeItem( "cassiterite" );
+		ITEM_PIG_IRON_INGOT = new MMetalItem( E_MMetalItemType.INGOT , "pig_iron" );
+		URegistry.addItem( Materials.ITEM_PIG_IRON_INGOT );
 
 		// Actual ores
 		ORE_COPPER = new MOCopper( );
@@ -105,12 +108,27 @@ public class Materials
 	@Override
 	public void registerRecipes( )
 	{
+		// Bronze
 		MAlloyRecipe.build( ).setName( "materials/bronze" ).setBurnTime( 400 ) //
 				.addInput( Materials.COPPER.INGOT ) //
 				.addInput( Materials.TIN.NUGGET ) //
 				.setOutput( Materials.BRONZE.INGOT ).setSlag( 1 ) //
 				.register( );
 
+		// Pig iron
+		MAlloyRecipe.build( ).setName( "materials/pig_iron/from_ingot" ).setBurnTime( 1600 ) //
+				.addInput( Materials.IRON.INGOT ) //
+				.addInput( Materials.ROCK_LIMESTONE ) //
+				.addInput( Materials.ITEM_COKE ) //
+				.setOutput( Materials.ITEM_PIG_IRON_INGOT , 2 ).setSlag( 3 ) //
+				.register( );
+		MAlloyRecipe.build( ).setName( "materials/pig_iron/from_ore" ).setBurnTime( 1600 ) //
+				.addInput( Blocks.IRON_ORE ) //
+				.addInput( Materials.ROCK_LIMESTONE ) //
+				.addInput( Materials.ITEM_COKE ) //
+				.setOutput( Materials.ITEM_PIG_IRON_INGOT ).setSlag( 5 ) //
+				.register( );
+
 		// MAlloyRecipe.build( ).setName( "materials/red_copper" ).setBurnTime( 800 )
 		// .addInput( Materials.COPPER.INGOT , 1 ).addInput( Items.REDSTONE , 2 )
 		// .setOutput( Materials.RED_COPPER.INGOT ).setSlag( 1 ).register( );
diff --git a/src/resources/assets/mmm/lang/en_US.lang b/src/resources/assets/mmm/lang/en_US.lang
index 70ae32b..dbac844 100644
--- a/src/resources/assets/mmm/lang/en_US.lang
+++ b/src/resources/assets/mmm/lang/en_US.lang
@@ -13,6 +13,7 @@ tile.mmm.materials.rock.limestone.name=Limestone
 item.mmm.materials.stone.coke.name=Coke
 item.mmm.materials.stone.slag.name=Slag
 item.mmm.materials.nugget.iron.name=Iron Nugget
+item.mmm.materials.ingot.pig_iron.name=Pig Iron Ingot
 
 item.mmm.materials.ingot.copper.name=Copper Ingot
 item.mmm.materials.nugget.copper.name=Copper Nugget
diff --git a/src/resources/assets/mmm/models/item/materials/ingot/pig_iron.json b/src/resources/assets/mmm/models/item/materials/ingot/pig_iron.json
new file mode 100644
index 0000000..9da3c6b
--- /dev/null
+++ b/src/resources/assets/mmm/models/item/materials/ingot/pig_iron.json
@@ -0,0 +1,6 @@
+{
+    "parent": "minecraft:item/generated",
+    "textures": {
+        "layer0": "mmm:items/materials/ingots/pig_iron"
+    }
+}
\ No newline at end of file
diff --git a/src/resources/assets/mmm/textures/items/materials/ingots/pig_iron.png b/src/resources/assets/mmm/textures/items/materials/ingots/pig_iron.png
new file mode 100644
index 0000000..ed1beb5
Binary files /dev/null and b/src/resources/assets/mmm/textures/items/materials/ingots/pig_iron.png differ