aStatus = VrmlData_VrmlFormatError;
         break;
       }
-    else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "scale")) {
-      if (myIsTransform)
-        aStatus = Scene().ReadXYZ (theBuffer, aScale,
-                                   Standard_False, Standard_True);
-      else {
-        aStatus = VrmlData_VrmlFormatError;
-        break;
-      }
-    } else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "scaleOrientation"))
+    else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "scaleOrientation"))
       if (myIsTransform) {
         if (OK(aStatus, Scene().ReadXYZ (theBuffer, aScaleAxis,
                                          Standard_False, Standard_False)))
         aStatus = VrmlData_VrmlFormatError;
         break;
       }
+    else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "scale"))
+      if (myIsTransform)
+        aStatus = Scene().ReadXYZ (theBuffer, aScale,
+                                   Standard_False, Standard_True);
+      else {
+        aStatus = VrmlData_VrmlFormatError;
+        break;
+      }
     else if (VRMLDATA_LCOMPARE (theBuffer.LinePtr, "translation"))
       if (myIsTransform)
         aStatus = Scene().ReadXYZ (theBuffer, aTrans,
 
--- /dev/null
+puts "=========="
+puts "OCC23328"
+puts "=========="
+puts ""
+#######################################################################################
+# Importing VRML files with "scaleOrientation" not possible
+#######################################################################################
+
+set aFile [locate_data_file bug23328_occ23328.vrml]
+set aLog [loadvrml test ${aFile}]
+set aLength [string length ${aLog}]
+
+if { ${aLength} == 0 } {
+  puts "OK: Importing VRML files with scaleOrientation is possible"
+} else {
+  puts "Error: Importing VRML files with scaleOrientation is not possible"
+}