diff --git a/steps/wsclean.cwl b/steps/wsclean.cwl
index e435d8bb849b0e102bfbeac5f041edc9cdf7da6c..42c08c020786f171a4d70b088d969a37f582f7a9 100644
--- a/steps/wsclean.cwl
+++ b/steps/wsclean.cwl
@@ -265,7 +265,9 @@ inputs:
       shellQuote: false
   - id: image_name
     default: 'pointing'
-    type: string?
+    type:
+      - string?
+      - File?
     inputBinding:
       position: 1
       prefix: '-name'
@@ -284,6 +286,11 @@ inputs:
       position: 1
       prefix: '-predict'
       shellQuote: false
+  - id: padding
+    type: float?
+    inputBinding:
+      position: 1
+      prefix: -padding
   - id: baseline_averaging
     default: false
     type: float?
diff --git a/workflows/linc_target/imaging_subtract.cwl b/workflows/linc_target/imaging_subtract.cwl
index 8f4e62647fe6b72d2f93dc6f6c3dbe0750bae325..74e3b9428e625d1bc559582cba772cfc0bf886ff 100644
--- a/workflows/linc_target/imaging_subtract.cwl
+++ b/workflows/linc_target/imaging_subtract.cwl
@@ -233,7 +233,7 @@ steps:
       - id: tempdir
         source: wsclean_tmpdir
       - id: do_predict
-        default: true
+        default: false
       - id: reuse_dirty
         source: make_mask_image/dirty_image
       - id: reuse_psf
@@ -245,10 +245,30 @@ steps:
       - id: logfile
     run: ../../steps/wsclean.cwl
     label: image_predict
+  - id: predict_wsclean
+    in:
+      - id: msin
+        source: make_mask_image/msout # workaround for CWL bug (https://github.com/common-workflow-language/cwltool/issues/1785)
+      - id: image_name
+        source: image_predict/image
+      - id: padding
+        default: 1.8
+      - id: channels-out
+        source: total_bandwidth
+        valueFrom: '$(Math.round(self/4.e6) > 0 ? Math.round(self/4.e6) : 1)'
+      - id: tempdir
+        source: wsclean_tmpdir
+      - id: do_predict
+        default: true
+    out:
+      - id: msout
+      - id: logfile
+    run: ../../steps/wsclean.cwl
+    label: predict_wsclean
   - id: subtract_model
     in:
       - id: msin
-        source: image_predict/msout
+        source: predict_wsclean/msout
       - id: command
         default: "set CORRECTED_DATA = CORRECTED_DATA - MODEL_DATA"
     out:
@@ -559,7 +579,6 @@ steps:
           - make_mask_image/logfile
           - make_mask/logfile
           - blank_image_reg/logfile
-          - image_predict/logfile
         linkMerge: merge_flattened
         pickValue: all_non_null
       - id: file_prefix
@@ -588,6 +607,8 @@ steps:
     in:
       - id: file_list
         source:
+          - image_predict/logfile
+          - predict_wsclean/logfile
           - merge_array_files/output
         linkMerge: merge_flattened
       - id: file_prefix
@@ -600,6 +621,7 @@ steps:
     in:
       - id: file_list
         source:
+          - image_tmp/logfile
           - make_beam_reg/logfile
           - blank_image_reg_1/logfile
           - blank_image_reg_2/logfile