diff --git a/modules/Bio/EnsEMBL/Hive/DBSQL/AnalysisJobAdaptor.pm b/modules/Bio/EnsEMBL/Hive/DBSQL/AnalysisJobAdaptor.pm
index 62e0d73dcb749cc32606a5d964f131023b2f52ff..c8bf32f81ebcaaed199a7d2d1484167e5a4bc65f 100644
--- a/modules/Bio/EnsEMBL/Hive/DBSQL/AnalysisJobAdaptor.pm
+++ b/modules/Bio/EnsEMBL/Hive/DBSQL/AnalysisJobAdaptor.pm
@@ -665,6 +665,10 @@ sub gc_dataflow {
     $job->dataflow_output_id( $job->input_id() , $branch_name );
 
     $job->update_status('PASSED_ON');
+
+    if(my $semaphored_job_id = $job->semaphored_job_id) {
+        $self->decrease_semaphore_count_for_jobid( $semaphored_job_id );    # step-unblock the semaphore
+    }
     
     return 1;
 }