diff --git a/VERSION b/VERSION
index 61f7501..247519f 100755
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.12.0-dev3
+2.12.0-dev5
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index c4dd037..929d117 100755
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -2290,16 +2290,31 @@
 			}
 		}
 	}
-	if dh.GetCollectorIsRunning() {
+
+	dh.mutexCollectorFlag.Lock()
+	logger.Debugw(ctx, "check-collector-is-running", log.Fields{"device-id": dh.device.Id, "flag": dh.collectorIsRunning})
+	if dh.collectorIsRunning {
 		// Stop collector routine
 		dh.stopCollector <- true
+		dh.collectorIsRunning = false
 	}
-	if dh.GetAlarmManagerIsRunning(ctx) {
+	dh.mutexCollectorFlag.Unlock()
+
+	dh.mutextAlarmManagerFlag.Lock()
+	logger.Debugw(ctx, "check-alarm-manager-is-running", log.Fields{"device-id": dh.device.Id, "flag": dh.alarmManagerIsRunning})
+	if dh.alarmManagerIsRunning {
 		dh.stopAlarmManager <- true
+		dh.alarmManagerIsRunning = false
 	}
-	if dh.pSelfTestHdlr.GetSelfTestHandlerIsRunning() {
+	dh.mutextAlarmManagerFlag.Unlock()
+
+	dh.pSelfTestHdlr.SelfTestHandlerLock.Lock()
+	logger.Debugw(ctx, "check-self-test-control-block-is-running", log.Fields{"device-id": dh.device.Id, "flag": dh.pSelfTestHdlr.SelfTestHandlerActive})
+	if dh.pSelfTestHdlr.SelfTestHandlerActive {
 		dh.pSelfTestHdlr.StopSelfTestModule <- true
+		dh.pSelfTestHdlr.SelfTestHandlerActive = false
 	}
+	dh.pSelfTestHdlr.SelfTestHandlerLock.Unlock()
 
 	// Note: We want flow deletes to be processed on onu down, so do not stop flow monitoring routines
 
@@ -3774,7 +3789,6 @@
 
 		select {
 		case <-dh.stopCollector:
-			dh.setCollectorIsRunning(false)
 			logger.Debugw(ctx, "stopping-collector-for-onu", log.Fields{"device-id": dh.device.Id})
 			// Stop the L2 PM FSM
 			go func() {
@@ -4058,8 +4072,7 @@
 	go dh.pAlarmMgr.StartOMCIAlarmMessageProcessing(ctx)
 	dh.setAlarmManagerIsRunning(true)
 	if stop := <-dh.stopAlarmManager; stop {
-		logger.Debugw(ctx, "stopping-collector-for-onu", log.Fields{"device-id": dh.device.Id})
-		dh.setAlarmManagerIsRunning(false)
+		logger.Debugw(ctx, "stopping-alarm-manager-for-onu", log.Fields{"device-id": dh.device.Id})
 		go func() {
 			if dh.pAlarmMgr.AlarmSyncFsm != nil && dh.pAlarmMgr.AlarmSyncFsm.PFsm != nil {
 				_ = dh.pAlarmMgr.AlarmSyncFsm.PFsm.Event(almgr.AsEvStop)
diff --git a/internal/pkg/omcitst/omci_self_test_handler.go b/internal/pkg/omcitst/omci_self_test_handler.go
index f8def86..00a1eee 100755
--- a/internal/pkg/omcitst/omci_self_test_handler.go
+++ b/internal/pkg/omcitst/omci_self_test_handler.go
@@ -69,8 +69,8 @@
 	selfTestFsmMap  map[generated.ClassID]*fsmCb // The fsmCb is indexed by ME Class ID of the Test Action procedure
 	selfTestFsmLock sync.RWMutex
 
-	selfTestHandlerLock   sync.RWMutex
-	selfTestHandlerActive bool
+	SelfTestHandlerLock   sync.RWMutex
+	SelfTestHandlerActive bool
 	StopSelfTestModule    chan bool
 }
 
@@ -359,7 +359,6 @@
 func (selfTestCb *SelfTestControlBlock) waitForStopSelfTestModuleSignal(ctx context.Context) {
 	selfTestCb.SetSelfTestHandlerIsRunning(true)
 	<-selfTestCb.StopSelfTestModule // block on stop signal
-	selfTestCb.SetSelfTestHandlerIsRunning(false)
 
 	logger.Infow(ctx, "received stop signal - clean up start", log.Fields{"device-id": selfTestCb.deviceID})
 	selfTestCb.selfTestFsmLock.Lock()
@@ -381,16 +380,16 @@
 
 // SetSelfTestHandlerIsRunning sets the value to selfTestCb.selfTestHandlerActive
 func (selfTestCb *SelfTestControlBlock) SetSelfTestHandlerIsRunning(active bool) {
-	selfTestCb.selfTestHandlerLock.Lock()
-	defer selfTestCb.selfTestHandlerLock.Unlock()
-	selfTestCb.selfTestHandlerActive = active
+	selfTestCb.SelfTestHandlerLock.Lock()
+	defer selfTestCb.SelfTestHandlerLock.Unlock()
+	selfTestCb.SelfTestHandlerActive = active
 }
 
 // GetSelfTestHandlerIsRunning gets selfTestCb.selfTestHandlerActive
 func (selfTestCb *SelfTestControlBlock) GetSelfTestHandlerIsRunning() bool {
-	selfTestCb.selfTestHandlerLock.RLock()
-	defer selfTestCb.selfTestHandlerLock.RUnlock()
-	return selfTestCb.selfTestHandlerActive
+	selfTestCb.SelfTestHandlerLock.RLock()
+	defer selfTestCb.SelfTestHandlerLock.RUnlock()
+	return selfTestCb.SelfTestHandlerActive
 }
 
 // SelfTestRequestStart initiate Test Request handling procedure. The results are asynchronously conveyed on the respChan.
