diff --git a/src/dhcp_configuration.cpp b/src/dhcp_configuration.cpp
index 1822c35..df71b31 100644
--- a/src/dhcp_configuration.cpp
+++ b/src/dhcp_configuration.cpp
@@ -52,7 +52,7 @@
     auto name = ConfigIntf::sendHostNameEnabled(value);
 
     manager.writeToConfigurationFile();
-    manager.reloadConfigs();
+    manager.reloadConfigsNoRefresh();
 
     return name;
 }
@@ -66,7 +66,7 @@
 
     auto name = ConfigIntf::hostNameEnabled(value);
     manager.writeToConfigurationFile();
-    manager.reloadConfigs();
+    manager.reloadConfigsNoRefresh();
 
     return name;
 }
@@ -80,7 +80,7 @@
 
     auto ntp = ConfigIntf::ntpEnabled(value);
     manager.writeToConfigurationFile();
-    manager.reloadConfigs();
+    manager.reloadConfigsNoRefresh();
 
     return ntp;
 }
@@ -94,7 +94,7 @@
 
     auto dns = ConfigIntf::dnsEnabled(value);
     manager.writeToConfigurationFile();
-    manager.reloadConfigs();
+    manager.reloadConfigsNoRefresh();
 
     return dns;
 }
diff --git a/src/ethernet_interface.cpp b/src/ethernet_interface.cpp
index e5a3110..a7bf8e3 100644
--- a/src/ethernet_interface.cpp
+++ b/src/ethernet_interface.cpp
@@ -341,7 +341,7 @@
     if (ipv6AcceptRA() != EthernetInterfaceIntf::ipv6AcceptRA(value))
     {
         writeConfigurationFile();
-        manager.reloadConfigs();
+        manager.reloadConfigsNoRefresh();
     }
     return value;
 }
@@ -351,7 +351,7 @@
     if (dhcp4() != EthernetInterfaceIntf::dhcp4(value))
     {
         writeConfigurationFile();
-        manager.reloadConfigs();
+        manager.reloadConfigsNoRefresh();
     }
     return value;
 }
@@ -361,7 +361,7 @@
     if (dhcp6() != EthernetInterfaceIntf::dhcp6(value))
     {
         writeConfigurationFile();
-        manager.reloadConfigs();
+        manager.reloadConfigsNoRefresh();
     }
     return value;
 }
@@ -383,7 +383,7 @@
     if (old4 != new4 || old6 != new6 || oldra != newra)
     {
         writeConfigurationFile();
-        manager.reloadConfigs();
+        manager.reloadConfigsNoRefresh();
     }
     return value;
 }
@@ -564,7 +564,7 @@
         EthernetInterfaceIntf::staticNameServers(value);
 
         writeConfigurationFile();
-        manager.reloadConfigs();
+        manager.reloadConfigsNoRefresh();
     }
     catch (const InternalFailure& e)
     {
@@ -717,7 +717,7 @@
         EthernetInterfaceIntf::staticNTPServers(value);
 
         writeConfigurationFile();
-        manager.reloadConfigs();
+        manager.reloadConfigsNoRefresh();
     }
     catch (InternalFailure& e)
     {
