diff --git a/worker.go b/worker.go
index 45418fe31869ce9f695759abcc54a0334e56ab01..893a33e479785acab7b02eb1f61a46d5a9ee0cd4 100644
--- a/worker.go
+++ b/worker.go
@@ -94,6 +94,8 @@ func (w *LocalWorker) Start() error {
 }
 
 func (w *LocalWorker) SetManager(manager *Manager) {
+	w.mu.Lock()
+	defer w.mu.Unlock()
 	w.manager = manager
 }
 
@@ -111,7 +113,7 @@ func (w *LocalWorker) Stop() error {
 		stopChan <- true
 	}
 
-	if w.manager != nil {
+	if w.manager != nil && w.manager.logger != nil {
 		w.manager.logger.Info("Worker stopped", "worker", w.ID)
 	}