diff --git a/lib/resqued/worker.rb b/lib/resqued/worker.rb
index <HASH>..<HASH> 100644
--- a/lib/resqued/worker.rb
+++ b/lib/resqued/worker.rb
@@ -58,8 +58,14 @@ module Resqued
         # In case we get a signal before the process is all the way up.
         [:QUIT, :TERM, :INT].each { |signal| trap(signal) { exit 1 } }
         $0 = "STARTING RESQUE FOR #{queues.join(',')}"
-        if Resque.respond_to?("logger=") && ! log_to_stdout?
-          Resque.logger = Resque.logger.class.new(logging_io)
+        if ! log_to_stdout?
+          lf = logging_io
+          if Resque.respond_to?("logger=")
+            Resque.logger = Resque.logger.class.new(lf)
+          else
+            $stdout.reopen(lf)
+            lf.close
+          end
         end
         resque_worker = Resque::Worker.new(*queues)
         resque_worker.log "Starting worker #{resque_worker}"
Try to get all resques to write their logs to our log file.