diff --git a/src/device/service/DeviceServiceServicerImpl.py b/src/device/service/DeviceServiceServicerImpl.py
index 179b7795b541801afb1db63f1ab532253a8cc851..5b537609b89bde3fe5812662379c629665ab56aa 100644
--- a/src/device/service/DeviceServiceServicerImpl.py
+++ b/src/device/service/DeviceServiceServicerImpl.py
@@ -121,11 +121,7 @@ class DeviceServiceServicerImpl(DeviceServiceServicer):
                 for error in errors: LOGGER.error(error)
                 raise OperationFailedException('ConfigureDevice', extra_details=errors)
 
-            # Rules updated by configure_rules() and deconfigure_rules() methods.
-            # Code to be removed soon if not needed.
-            del device.device_config.config_rules[:]
-            populate_config_rules(device, driver)
-
+            # Note: Rules are updated by configure_rules() and deconfigure_rules() methods.
             device_id = context_client.SetDevice(device)
             return device_id
         finally:
diff --git a/src/device/service/Tools.py b/src/device/service/Tools.py
index d2cd0b48104857ac8a4525feb28a4ca480e0aec1..b4dc66dde9562364342dd736405d4d4dcbd9772a 100644
--- a/src/device/service/Tools.py
+++ b/src/device/service/Tools.py
@@ -107,7 +107,7 @@ def populate_endpoints(device : Device, driver : _Driver, monitoring_loops : Mon
     return errors
 
 def _raw_config_rules_to_grpc(
-    device_uuid : str, device_config : DeviceConfig, error_template : str, default_config_action : ConfigActionEnum,
+    device_uuid : str, device_config : DeviceConfig, error_template : str, config_action : ConfigActionEnum,
     raw_config_rules : List[Tuple[str, Union[Any, Exception, None]]]
 ) -> List[str]:
     errors : List[str] = list()
@@ -118,7 +118,7 @@ def _raw_config_rules_to_grpc(
             continue
 
         config_rule = device_config.config_rules.add()
-        config_rule.action = default_config_action
+        config_rule.action = config_action
         config_rule.custom.resource_key = resource_key
         config_rule.custom.resource_value = \
             resource_value if isinstance(resource_value, str) else json.dumps(resource_value, sort_keys=True)
@@ -177,9 +177,8 @@ def configure_rules(device : Device, driver : _Driver, resources_to_set : List[T
         for (resource_key, resource_value), result in zip(resources_to_set, results_setconfig)
     ]
 
-    device_config = DeviceConfig() # ignored; added at the end of ConfigureDevice
     return _raw_config_rules_to_grpc(
-        device_uuid, device_config, ERROR_SET, ConfigActionEnum.CONFIGACTION_SET, results_setconfig)
+        device_uuid, device.device_config, ERROR_SET, ConfigActionEnum.CONFIGACTION_SET, results_setconfig)
 
 def deconfigure_rules(device : Device, driver : _Driver, resources_to_delete : List[Tuple[str, Any]]) -> List[str]:
     device_uuid = device.device_id.device_uuid.uuid
@@ -190,9 +189,8 @@ def deconfigure_rules(device : Device, driver : _Driver, resources_to_delete : L
         for (resource_key, resource_value), result in zip(resources_to_delete, results_deleteconfig)
     ]
 
-    device_config = DeviceConfig() # ignored; added at the end of ConfigureDevice
     return _raw_config_rules_to_grpc(
-        device_uuid, device_config, ERROR_DELETE, ConfigActionEnum.CONFIGACTION_DELETE, results_deleteconfig)
+        device_uuid, device.device_config, ERROR_DELETE, ConfigActionEnum.CONFIGACTION_DELETE, results_deleteconfig)
 
 def subscribe_kpi(request : MonitoringSettings, driver : _Driver, monitoring_loops : MonitoringLoops) -> List[str]:
     kpi_uuid = request.kpi_id.kpi_id.uuid