diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn
index 40f1fca2f15a590f43200a41c43aee5aa62dced3..d3478eb1fe3f20ecc10dc3b119a9cf158bfc368f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn
@@ -65,6 +65,27 @@ with {
 };
 
 
+type XSD.Float FloatType2 (infinity)
+with {
+  variant "defaultForEmpty as 'INF'";
+  variant "element";
+};
+
+
+type XSD.Float FloatType3 (-infinity)
+with {
+  variant "defaultForEmpty as '-INF'";
+  variant "element";
+};
+
+
+type XSD.Float FloatType4 (not_a_number)
+with {
+  variant "defaultForEmpty as 'NaN'";
+  variant "element";
+};
+
+
 type XSD.Double DoubleType (7.0)
 with {
   variant "defaultForEmpty as '7.0'";
diff --git a/regression_test/XML/XmlWorkflow/xsd/fixed_value.xsd b/regression_test/XML/XmlWorkflow/xsd/fixed_value.xsd
index a6f1a2fceeb21edb4c6d44896d87c7e939d7a34f..b7e4d7900bee2e01d71fcb7342608f028cb9ee92 100644
--- a/regression_test/XML/XmlWorkflow/xsd/fixed_value.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/fixed_value.xsd
@@ -6,6 +6,9 @@
 <xsd:element name="StringType" type="xsd:string" fixed="a"/>
 <xsd:element name="IntegerType" type="xsd:integer" fixed="7"/>
 <xsd:element name="FloatType" type="xsd:float" fixed="7.0"/>
+<xsd:element name="FloatType2" type="xsd:float" fixed="INF"/> 
+<xsd:element name="FloatType3" type="xsd:float" fixed="-INF"/> 
+<xsd:element name="FloatType4" type="xsd:float" fixed="NaN"/> 
 <xsd:element name="DoubleType" type="xsd:double" fixed="7.0"/>
 <xsd:element name="BooleanType" type="xsd:boolean" fixed="true"/>
 <xsd:element name="BooleanType2" type="xsd:boolean" fixed="0"/>
diff --git a/xsdconvert/SimpleType.cc b/xsdconvert/SimpleType.cc
index 1aa78caaf3807d802c8968f420ae77f776e03f10..b186c6b0f0ddaee09e4c91ce7664aabc91161494 100644
--- a/xsdconvert/SimpleType.cc
+++ b/xsdconvert/SimpleType.cc
@@ -1551,6 +1551,18 @@ void ValueType::printToFile(FILE * file) const {
         val = fixed_value;
       }
       fprintf(file, " (%s)", val.c_str());
+    } else if (isFloatType(type)) {
+      Mstring val;
+      if (fixed_value == "INF") {
+        val = "infinity";
+      } else if (fixed_value == "-INF") {
+        val = "-infinity";
+      } else if (fixed_value == "NaN") {
+        val = "not_a_number";
+      } else {
+        val = fixed_value;
+      }
+      fprintf(file, " (%s)", val.c_str());
     } else {
       fprintf(file, " (%s)", fixed_value.c_str());
     }