diff --git a/scripts/runWorker.pl b/scripts/runWorker.pl
index d1c37e4d224bdd9a98523c4535f3cbb49cb92f39..d38c1d7f92fd4b93330c3f5135aa2852e727edbc 100755
--- a/scripts/runWorker.pl
+++ b/scripts/runWorker.pl
@@ -1,5 +1,6 @@
-#!/usr/local/ensembl/bin/perl -w
+#!/usr/bin/env perl
 
+use warnings;
 use strict;
 use DBI;
 use Getopt::Long;
@@ -190,6 +191,10 @@ eval { $worker->run(); };
 
 if($@) {
   #worker threw an exception so it had a problem
+  if($worker->perform_global_cleanup) {
+    #have runnable cleanup any global/process files/data it may have created
+    $worker->cleanup_worker_process_temp_directory;
+  }
   print("\n$@");
 	$queen->register_worker_death($worker);
 }