diff --git a/epicardium/modules/config.c b/epicardium/modules/config.c
index 2e741b93ff41907e9ab05e0b9256fbc08e26a390..4928a84aa8345d21640bc82eda63e6434bb4c754 100644
--- a/epicardium/modules/config.c
+++ b/epicardium/modules/config.c
@@ -246,6 +246,19 @@ void load_config(void)
 		return;
 	}
 
+	/* Clear any existing configuration */
+	config_block *current;
+	if (config_data != NULL) {
+		current = config_data;
+		while (true) {
+			memset(current->slots, 0, sizeof(current->slots));
+			if (current->next == NULL) {
+				break;
+			}
+			current = current->next;
+		}
+	}
+
 	char buf[128];
 	int nread;
 	parser_state s;