diff --git a/src/libslic3r/GCode/WipeTowerPrusaMM.cpp b/src/libslic3r/GCode/WipeTowerPrusaMM.cpp
index f87969505..031fd9a28 100644
--- a/src/libslic3r/GCode/WipeTowerPrusaMM.cpp
+++ b/src/libslic3r/GCode/WipeTowerPrusaMM.cpp
@@ -381,22 +381,7 @@ public:
 	Writer& comment_material(WipeTowerPrusaMM::material_type material)
 	{
 		m_gcode += "; material : ";
-		switch (material)
-		{
-		case WipeTowerPrusaMM::PVA:
-			m_gcode += "#8 (PVA)";
-			break;
-		case WipeTowerPrusaMM::SCAFF:
-			m_gcode += "#5 (Scaffold)";
-			break;
-		case WipeTowerPrusaMM::FLEX:
-			m_gcode += "#4 (Flex)";
-			break;
-		default:
-			m_gcode += "DEFAULT (PLA)";
-			break;
-		}
-		m_gcode += "\n";
+		m_gcode += WipeTowerPrusaMM::to_string(material) + "\n";
 		return *this;
 	};
 
@@ -487,6 +472,23 @@ WipeTowerPrusaMM::material_type WipeTowerPrusaMM::parse_material(const char *nam
 	return INVALID;
 }
 
+std::string WipeTowerPrusaMM::to_string(material_type material)
+{
+	switch (material) {
+	case PLA:		return "PLA";
+	case ABS:		return "ABS";
+	case PET:		return "PET";
+	case HIPS:		return "HIPS";
+	case FLEX:		return "FLEX";
+	case SCAFF:		return "SCAFF";
+	case EDGE:		return "EDGE";
+	case NGEN:		return "NGEN";
+	case PVA:		return "PVA";
+	case INVALID: 	
+	default: 		return "INVALID";
+	}
+}
+
 // Returns gcode to prime the nozzles at the front edge of the print bed.
 WipeTower::ToolChangeResult WipeTowerPrusaMM::prime(
 	// print_z of the first layer.
diff --git a/src/libslic3r/GCode/WipeTowerPrusaMM.hpp b/src/libslic3r/GCode/WipeTowerPrusaMM.hpp
index 70c9526e6..3f904a483 100644
--- a/src/libslic3r/GCode/WipeTowerPrusaMM.hpp
+++ b/src/libslic3r/GCode/WipeTowerPrusaMM.hpp
@@ -38,6 +38,7 @@ public:
 
 	// Parse material name into material_type.
 	static material_type parse_material(const char *name);
+	static std::string   to_string(material_type material);
 
 	// x			-- x coordinates of wipe tower in mm ( left bottom corner )
 	// y			-- y coordinates of wipe tower in mm ( left bottom corner )