diff --git a/scriptcwl/step.py b/scriptcwl/step.py
index <HASH>..<HASH> 100644
--- a/scriptcwl/step.py
+++ b/scriptcwl/step.py
@@ -227,7 +227,9 @@ class Step(object):
         obj['out'] = self.output_names
         if self.is_scattered:
             obj['scatter'] = self.scattered_inputs
-            obj['scatterMethod'] = self.scatter_method
+            # scatter_method is optional when scattering over a single variable
+            if self.scatter_method is not None:
+                obj['scatterMethod'] = self.scatter_method
 
         return obj
 
diff --git a/tests/test_workflow.py b/tests/test_workflow.py
index <HASH>..<HASH> 100644
--- a/tests/test_workflow.py
+++ b/tests/test_workflow.py
@@ -432,6 +432,8 @@ class TestWorkflowGeneratorTypeChecking(object):
         msgs = wf.add_input(wfmessages='string[]')
         wf.echo(message=msgs, scatter='message')
 
+        wf.validate()
+
     def test_step_with_compatible_step_output(self):
         wf = WorkflowGenerator()
         wf.load('tests/data/tools')
Fix adding of scatter_method=None

The scatter_method keyword is optional when scattering over a single
parameter (#<I>). This was fixed before. However, when saving the
workflow, the step's scatter_method was set to None, which lead to
a validation error when saving the workflow. This is fixed by checking
whether the scatter_method is set (and should therefore be added).

Also updated the test to validate the workflow after adding a scattered
step without scatter_method.