diff --git a/VERSION b/VERSION
index dedcc7d..e0c9c37 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.9.1
+2.9.2-dev
diff --git a/rw_core/core/device/agent.go b/rw_core/core/device/agent.go
index 9358d8a..7e401aa 100755
--- a/rw_core/core/device/agent.go
+++ b/rw_core/core/device/agent.go
@@ -328,7 +328,13 @@
 	defer cancel()
 	var desc string
 	operStatus := &common.OperationResp{Code: common.OperationResp_OPERATION_FAILURE}
-	defer agent.logDeviceUpdate(ctx, rpc, prevState, &agent.device.AdminState, operStatus, &desc)
+	defer func() {
+		currAdminState := prevState
+		if d, _ := agent.getDeviceReadOnly(ctx); d != nil {
+			currAdminState = &d.AdminState
+		}
+		agent.logDeviceUpdate(ctx, rpc, prevState, currAdminState, operStatus, &desc)
+	}()
 	var rpce *voltha.RPCEvent
 	defer func() {
 		if rpce != nil {
@@ -383,7 +389,6 @@
 // enableDevice activates a preprovisioned or a disable device
 func (agent *Agent) enableDevice(ctx context.Context) error {
 	//To preserve and use oldDevice state as prev state in new device
-	prevDeviceState := agent.device.AdminState
 	var desc string
 	operStatus := &common.OperationResp{Code: common.OperationResp_OPERATION_FAILURE}
 
@@ -394,6 +399,8 @@
 	}
 	logger.Debugw(ctx, "enable-device", log.Fields{"device-id": agent.deviceID})
 
+	prevDeviceState := agent.device.AdminState
+
 	oldDevice := agent.getDeviceReadOnlyWithoutLock()
 
 	if oldDevice.AdminState == voltha.AdminState_ENABLED {
diff --git a/rw_core/core/device/agent_device_update.go b/rw_core/core/device/agent_device_update.go
index 9e5013a..621e720 100644
--- a/rw_core/core/device/agent_device_update.go
+++ b/rw_core/core/device/agent_device_update.go
@@ -39,9 +39,8 @@
 }
 
 func (agent *Agent) stateChangeString(prevState *common.AdminState_Types, currState *common.AdminState_Types) string {
-	device := agent.getDeviceReadOnlyWithoutLock()
 	if prevState != nil && currState != nil && *prevState != *currState {
-		return fmt.Sprintf("%s->%s", *prevState, device.AdminState)
+		return fmt.Sprintf("%s->%s", *prevState, *currState)
 	}
 	return ""
 }
diff --git a/rw_core/core/device/remote/adapter_proxy.go b/rw_core/core/device/remote/adapter_proxy.go
index ce4cf49..aba551e 100755
--- a/rw_core/core/device/remote/adapter_proxy.go
+++ b/rw_core/core/device/remote/adapter_proxy.go
@@ -30,18 +30,16 @@
 // AdapterProxy represents adapter proxy attributes
 type AdapterProxy struct {
 	kafka.EndpointManager
-	deviceTopicRegistered bool
-	coreTopic             string
-	kafkaICProxy          kafka.InterContainerProxy
+	coreTopic    string
+	kafkaICProxy kafka.InterContainerProxy
 }
 
 // NewAdapterProxy will return adapter proxy instance
 func NewAdapterProxy(kafkaProxy kafka.InterContainerProxy, coreTopic string, endpointManager kafka.EndpointManager) *AdapterProxy {
 	return &AdapterProxy{
-		EndpointManager:       endpointManager,
-		kafkaICProxy:          kafkaProxy,
-		coreTopic:             coreTopic,
-		deviceTopicRegistered: false,
+		EndpointManager: endpointManager,
+		kafkaICProxy:    kafkaProxy,
+		coreTopic:       coreTopic,
 	}
 }
 
@@ -87,7 +85,6 @@
 		{Key: "device", Value: device},
 	}
 	replyToTopic := ap.getCoreTopic()
-	ap.deviceTopicRegistered = true
 	logger.Debugw(ctx, "adoptDevice-send-request", log.Fields{"device-id": device.Id, "deviceType": device.Type, "serialNumber": device.SerialNumber})
 	return ap.sendRPC(ctx, rpc, toTopic, &replyToTopic, true, device.Id, args...)
 }
@@ -362,7 +359,6 @@
 		{Key: "request", Value: simulateReq},
 	}
 	replyToTopic := ap.getCoreTopic()
-	ap.deviceTopicRegistered = true
 	return ap.sendRPC(ctx, rpc, toTopic, &replyToTopic, true, device.Id, args...)
 }
 
