diff --git a/src/vuln-4/dc.c b/src/vuln-4/dc.c
index 0a1588eff1b5cbbc93c8fe3d7d77d11427c0aab2..db8f8b9860aa34b1fff35ee887d57aa5c173fead 100644
--- a/src/vuln-4/dc.c
+++ b/src/vuln-4/dc.c
@@ -85,7 +85,7 @@ static node_t *node_new(const char *varname, const value_t value){
 static void node_edit_value(node_t * p, node_t *q){  
   char *ptr;
   if (q->value == strtol(q->varname, &ptr, 10)) {
-    free(q->value);
+    q->varname = q->value;
   }
   p->value = q->value;
   free(q->varname);