diff --git a/epicardium/modules/config.c b/epicardium/modules/config.c
index cae7bde65f4e6b563fa24bb964c698f054ee3764..e00b3bb6086788606b16e36c41fa369dc2aa0aaa 100644
--- a/epicardium/modules/config.c
+++ b/epicardium/modules/config.c
@@ -507,6 +507,11 @@ int epic_config_set_string(const char *key, const char *value_in)
 		int fd2 = -1;
 		ret     = epic_config_get_string(key, buf, sizeof(buf));
 
+		if (ret == 0 && strcmp(buf, value) == 0) {
+			/* Nothing to do: the values are the same. */
+			return 0;
+		}
+
 		size_t nread = read_config_offset(
 			slot->value_offset, buf, sizeof(buf)
 		);