diff --git a/haraka.js b/haraka.js
index <HASH>..<HASH> 100644
--- a/haraka.js
+++ b/haraka.js
@@ -46,6 +46,11 @@ process.on('uncaughtException', function (err) {
     });
 });
 
+process.on('SIGUSR1', function () {
+    logger.lognotice("Flushing the temp fail queue");
+    server.flushQueue();
+})
+
 process.on('exit', function() {
     process.title = path.basename(process.argv[1], '.js');
     logger.lognotice('Shutting down');
diff --git a/server.js b/server.js
index <HASH>..<HASH> 100644
--- a/server.js
+++ b/server.js
@@ -66,6 +66,17 @@ Server.daemonize = function (config_data) {
     }
 }
 
+Server.flushQueue = function () {
+    if (Server.cluster) {
+        for (var id in cluster.workers) {
+            cluster.workers[id].send({event: 'flush_queue'});
+        }
+    }
+    else {
+        out.flush_queue();
+    }
+}
+
 Server.createServer = function (params) {
     var config_data = config.get('smtp.ini');
     var param_key;
Flush the outbound temp fail queue with SIGUSR1