diff --git a/kadmos/cmdows/schemas/0.9/cmdows.xml b/kadmos/cmdows/schemas/0.9/cmdows.xml
index 0fb23773e294d9846d0a821061c7c55c39e540f9..43c10c198c43517be4a92d660d9f7addcecc43d6 100644
--- a/kadmos/cmdows/schemas/0.9/cmdows.xml
+++ b/kadmos/cmdows/schemas/0.9/cmdows.xml
@@ -857,12 +857,15 @@
           <!--Optional:-->
           <settings>
             <package>string</package>
-            <maximumIterations>1.5E2</maximumIterations>
             <algorithm>string</algorithm>
-            <applyScaling>false</applyScaling>
+            <maximumIterations>1.5E2</maximumIterations>
+            <!--Optional:-->
             <maximumFunctionEvaluations>1.5E2</maximumFunctionEvaluations>
-            <constraintTolerance>1.5E2</constraintTolerance>
             <convergenceTolerance>1.5E2</convergenceTolerance>
+            <!--Optional:-->
+            <constraintTolerance>1.5E2</constraintTolerance>
+            <!--Optional:-->
+            <applyScaling>false</applyScaling>
           </settings>
           <!--Optional:-->
           <designVariables>
diff --git a/kadmos/cmdows/schemas/0.9/cmdows.xsd b/kadmos/cmdows/schemas/0.9/cmdows.xsd
index 1c2f0616f829aef285b214382185a61576b4ca03..4f4e9945dde03b02dc77fb5e8ddb265b215c4686 100644
--- a/kadmos/cmdows/schemas/0.9/cmdows.xsd
+++ b/kadmos/cmdows/schemas/0.9/cmdows.xsd
@@ -1365,10 +1365,10 @@
 						<xs:element name="package" type="xs:string"/>
 						<xs:element name="algorithm" type="xs:string"/>
 						<xs:element name="maximumIterations" type="xs:float"/>
-						<xs:element name="maximumFunctionEvaluations" type="xs:float"/>
+						<xs:element name="maximumFunctionEvaluations" type="xs:float" minOccurs="0"/>
 						<xs:element name="convergenceTolerance" type="xs:float"/>
-						<xs:element name="constraintTolerance" type="xs:float"/>
-						<xs:element name="applyScaling" type="xs:boolean"/>
+						<xs:element name="constraintTolerance" type="xs:float" minOccurs="0"/>
+						<xs:element name="applyScaling" type="xs:boolean" minOccurs="0"/>
 					</xs:sequence>
 				</xs:complexType>
 			</xs:element>		
diff --git a/kadmos/graph/graph_data.py b/kadmos/graph/graph_data.py
index baace11a4aef44e067e20923a618ec279446bb14..0c12bf06f3aea339c55d08cf172ff792d7bee8d5 100644
--- a/kadmos/graph/graph_data.py
+++ b/kadmos/graph/graph_data.py
@@ -4860,20 +4860,23 @@ class MdaoDataGraph(DataGraph, MdaoMixin):
                         if 'settings' not in self.nodes[cmdows_uid] or self.nodes[cmdows_uid]['settings'] is None:
                             self.nodes[cmdows_uid]['settings'] = {}
                         if role == 'converger':
-                            setting_options = {'linear_solver': 'linearSolver',
-                                               'nonlinear_solver': 'nonlinearSolver'}
-                            solver_settings_options = {'method': 'method',
-                                                       'last_iterations_to_consider': 'lastIterationsToConsider',
-                                                       'maximum_iterations': 'maximumIterations',
-                                                       'convergence_tolerance_relative': 'convergenceToleranceRelative',
-                                                       'convergence_tolerance_absolute': 'convergenceToleranceAbsolute'}
+                            setting_options = OrderedDict([('linear_solver', 'linearSolver'),
+                                                           ('nonlinear_solver', 'nonlinearSolver')])
+                            solver_settings_options = \
+                                OrderedDict([('method', 'method'),
+                                             ('last_iterations_to_consider', 'lastIterationsToConsider'),
+                                             ('maximum_iterations', 'maximumIterations'),
+                                             ('convergence_tolerance_relative', 'convergenceToleranceRelative'),
+                                             ('convergence_tolerance_absolute', 'convergenceToleranceAbsolute')])
                         else:
-                            setting_options = {'maximum_iterations': 'maximumIterations',
-                                               'algorithm': 'algorithm',
-                                               'apply_scaling': 'applyScaling',
-                                               'maximum_function_evaluations': 'maximumFunctionEvaluations',
-                                               'constraint_tolerance': 'constraintTolerance',
-                                               'convergence_tolerance': 'convergenceTolerance'}
+                            setting_options = \
+                                OrderedDict([('package', 'package'),
+                                             ('algorithm', 'algorithm'),
+                                             ('maximum_iterations', 'maximumIterations'),
+                                             ('apply_scaling', 'applyScaling'),
+                                             ('maximum_function_evaluations', 'maximumFunctionEvaluations'),
+                                             ('constraint_tolerance', 'constraintTolerance'),
+                                             ('convergence_tolerance', 'convergenceTolerance')])
                         for setting_option in setting_options:
                             if setting_option == 'apply_scaling':
                                 bool_options = {'true': True, 'false': False}