diff --git a/src/STEPControl/STEPControl_Controller.cxx b/src/STEPControl/STEPControl_Controller.cxx
index 1970fff87a..bdb17f8f88 100644
--- a/src/STEPControl/STEPControl_Controller.cxx
+++ b/src/STEPControl/STEPControl_Controller.cxx
@@ -239,6 +239,7 @@ STEPControl_Controller::STEPControl_Controller ()
     Interface_Static::Init ("XSTEP", "FromSTEP.FixShape.FixNonAdjacentIntersectingEdgesMode", 't', "-1");
     Interface_Static::Init ("XSTEP", "FromSTEP.FixShape.FixVertexPositionMode",       't', "0");
     Interface_Static::Init ("XSTEP", "FromSTEP.FixShape.FixVertexToleranceMode",      't', "-1"); 
+    Interface_Static::Init ("XSTEP", "FromSTEP.FixFaceSize.Tolerance",                't', "1.e-7"); 
 
     // ika 28.07.16: Parameter to read all top level solids and shells,
     // should be used only in case of invalid shape_representation without links to shapes.
diff --git a/tests/bugs/step/bug27122 b/tests/bugs/step/bug27122
new file mode 100644
index 0000000000..b4c4f6ae0b
--- /dev/null
+++ b/tests/bugs/step/bug27122
@@ -0,0 +1,27 @@
+puts "================"
+puts "OCC27122"
+puts "================"
+puts ""
+#####################################################################
+# STEP import regression: invalid shapes are produced during model translation due to huge face tolerance
+#####################################################################
+
+pload XDE
+
+# Empty resource file name to take params from InterfaceStatic
+param "read.step.resource.name" "\"\""
+# Add FixFaceSize operator
+param "FromSTEP.exec.op" FixShape,FixFaceSize
+# Set a tolerance exceeding the size of the problem face to FixFaceSize operator
+param "FromSTEP.FixFaceSize.Tolerance" 0.0508
+
+stepread [locate_data_file bug27122_280696.stp] a *
+
+# restore old params
+param "read.step.resource.name" STEP
+param "FromSTEP.exec.op" FixShape
+param "FromSTEP.FixFaceSize.Tolerance" 1.e-7
+
+checknbshapes a_1 -t -face 10
+
+checkview -display a_1 -3d -path ${imagedir}/${test_image}.png