diff --git a/lib/woodhouse/scheduler.rb b/lib/woodhouse/scheduler.rb
index <HASH>..<HASH> 100644
--- a/lib/woodhouse/scheduler.rb
+++ b/lib/woodhouse/scheduler.rb
@@ -53,7 +53,12 @@ class Woodhouse::Scheduler
 
   def start_worker(worker)
     @config.logger.debug "Starting worker #{worker.describe}"
-    @worker_sets[worker] = WorkerSet.new_link(Celluloid.current_actor, worker, @config) unless @worker_sets.has_key?(worker)
+    unless @worker_sets.has_key?(worker)
+      @worker_sets[worker] = WorkerSet.new_link(Celluloid.current_actor, worker, @config)
+      true
+    else
+      false
+    end
   end
 
   def stop_worker(worker, wait = false)
diff --git a/spec/scheduler_spec.rb b/spec/scheduler_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/scheduler_spec.rb
+++ b/spec/scheduler_spec.rb
@@ -20,9 +20,8 @@ describe Woodhouse::Scheduler do
   end
 
   it "should not create a new worker set when an existing worker is sent to #start_worker" do
-    pending "figure out how to test this without mocha, which works badly with Celluloid"
-    subject.start_worker worker
-    subject.start_worker worker
+    subject.start_worker(worker).should be_true
+    subject.start_worker(worker).should be_false
   end
 
   it "should spin down and remove a worker set when a worker is sent to #stop_worker" do
Keep Scheduler#start_worker from leaking references to internals