diff --git a/workflows/linc_target/gsmcal.cwl b/workflows/linc_target/gsmcal.cwl
index 5bb2ae4ebc07061e78e79d4eac5b48ea5eeb4d63..e0d81bf3a817b1b71b6c869c2080b550be0e0846 100644
--- a/workflows/linc_target/gsmcal.cwl
+++ b/workflows/linc_target/gsmcal.cwl
@@ -355,7 +355,7 @@ steps:
     in:
       - id: msin
         source: 
-          - aoflag/output_ms
+          - merge_array_concat/output
       - id: group_id
         source: sort_times_into_freqGroups_full/groupnames
       - id: groups_specification
@@ -427,6 +427,15 @@ steps:
     scatter:
       - msin
 
+  - id: merge_array
+    in:
+      - id: input
+        source: check_unflagged_fraction/msout
+    out:
+      - id: output
+    run: ../../steps/merge_array.cwl
+    label: merge_array
+
   - id: merge_array_files
     in:
       - id: input
@@ -444,15 +453,7 @@ steps:
       - id: output
     run: ../../steps/check_filtered_MS_array.cwl
     label: check_filtered_MS_array
-  
-  - id: merge_array
-    in:
-      - id: input
-        source: check_unflagged_fraction/msout
-    out:
-      - id: output
-    run: ../../steps/merge_array.cwl
-    label: merge_array
+
 
   - id: calibrate_target
     in:
@@ -479,7 +480,8 @@ steps:
     label: calibrate_target
     scatter:
       - msin
-    when: $(!inputs.execute)
+    when: $(!inputs.execute || inputs.selfcal_strategy == 'HBA')
+
   - id: selfcal_target
     in:
       - id: max_dp3_threads