diff --git a/internal/pkg/onuadaptercore/device_handler.go b/internal/pkg/onuadaptercore/device_handler.go
index b9b8504..2d4d67d 100644
--- a/internal/pkg/onuadaptercore/device_handler.go
+++ b/internal/pkg/onuadaptercore/device_handler.go
@@ -216,6 +216,9 @@
 	reconciling                 uint8
 	mutexReconcilingFlag        sync.RWMutex
 	chReconcilingFinished       chan bool //channel to indicate that reconciling has been finished
+	reconcilingFlows            bool
+	mutexReconcilingFlowsFlag   sync.RWMutex
+	chReconcilingFlowsFinished  chan bool //channel to indicate that reconciling of flows has been finished
 	ReadyForSpecificOmciConfig  bool
 	deletionInProgress          bool
 	mutexDeletionInProgressFlag sync.RWMutex
@@ -249,6 +252,8 @@
 	dh.UniVlanConfigFsmMap = make(map[uint8]*UniVlanConfigFsm)
 	dh.reconciling = cNoReconciling
 	dh.chReconcilingFinished = make(chan bool)
+	dh.reconcilingFlows = false
+	dh.chReconcilingFlowsFinished = make(chan bool)
 	dh.ReadyForSpecificOmciConfig = false
 	dh.deletionInProgress = false
 
@@ -926,6 +931,7 @@
 		}
 		flowsFound = true
 		flowsProcessed := 0
+		dh.setReconcilingFlows(true)
 		for _, flowData := range uniData.PersFlowParams {
 			logger.Debugw(ctx, "reconciling - add flow with cookie slice", log.Fields{"device-id": dh.deviceID, "cookies": flowData.CookieSlice})
 			//the slice can be passed 'by value' here, - which internally passes its reference copy
@@ -950,6 +956,7 @@
 		logger.Debugw(ctx, "reconciling - flows processed", log.Fields{"device-id": dh.deviceID, "flowsProcessed": flowsProcessed,
 			"numUniFlows":       dh.UniVlanConfigFsmMap[uniData.PersUniID].numUniFlows,
 			"configuredUniFlow": dh.UniVlanConfigFsmMap[uniData.PersUniID].configuredUniFlow})
+		dh.setReconcilingFlows(false)
 	}
 	if !flowsFound {
 		logger.Debugw(ctx, "reconciling - no flows have been stored before adapter restart - terminate reconcilement",
@@ -1663,12 +1670,7 @@
 		return fmt.Errorf("no valid OnuDevice: %s", dh.deviceID)
 	}
 	if includingMibSyncFsm {
-		//the MibSync FSM might be active all the ONU-active time,
-		// hence it must be stopped unconditionally
-		pMibUlFsm := pDevEntry.pMibUploadFsm.pFsm
-		if pMibUlFsm != nil {
-			_ = pMibUlFsm.Event(ulEvStop) //TODO!! verify if MibSyncFsm stop-processing is sufficient (to allow it again afterwards)
-		}
+		pDevEntry.CancelProcessing(ctx)
 	}
 	//MibDownload may run
 	pMibDlFsm := pDevEntry.pMibDownloadFsm.pFsm
@@ -3220,9 +3222,14 @@
 			logger.Debugw(ctx, "wait for channel signal or timeout",
 				log.Fields{"timeout": dh.pOpenOnuAc.maxTimeoutReconciling, "device-id": dh.deviceID})
 			select {
-			case <-dh.chReconcilingFinished:
-				logger.Debugw(ctx, "reconciling has been finished in time",
-					log.Fields{"device-id": dh.deviceID})
+			case success := <-dh.chReconcilingFinished:
+				if success {
+					logger.Debugw(ctx, "reconciling has been finished in time",
+						log.Fields{"device-id": dh.deviceID})
+				} else {
+					logger.Debugw(ctx, "wait for reconciling aborted",
+						log.Fields{"device-id": dh.deviceID})
+				}
 			case <-time.After(dh.pOpenOnuAc.maxTimeoutReconciling):
 				logger.Errorw(ctx, "timeout waiting for reconciling to be finished!",
 					log.Fields{"device-id": dh.deviceID})
@@ -3278,3 +3285,16 @@
 func (dh *deviceHandler) getDeviceReasonString() string {
 	return deviceReasonMap[dh.getDeviceReason()]
 }
+
+func (dh *deviceHandler) setReconcilingFlows(value bool) {
+	dh.mutexReconcilingFlowsFlag.Lock()
+	dh.reconcilingFlows = value
+	dh.mutexReconcilingFlowsFlag.Unlock()
+}
+
+func (dh *deviceHandler) isReconcilingFlows() bool {
+	dh.mutexReconcilingFlowsFlag.RLock()
+	value := dh.reconcilingFlows
+	dh.mutexReconcilingFlowsFlag.RUnlock()
+	return value
+}
