diff --git a/poc/vuln-3.poc b/poc/vuln-3.poc
index ab75426a5954d8d9db5ec36665873091c648d348..a24864b9cdb2e07c31c1a7c5ae143292a35feac9 100644
--- a/poc/vuln-3.poc
+++ b/poc/vuln-3.poc
@@ -1,4 +1,2 @@
 push 10
-store value
-load value
-store value
\ No newline at end of file
+*
\ No newline at end of file
diff --git a/src/vuln-3/dc.c b/src/vuln-3/dc.c
index 6f4facd19fcab6101011c861e787049b8e356f02..4231e124a5636b953f4caed01275d87a6d17461d 100644
--- a/src/vuln-3/dc.c
+++ b/src/vuln-3/dc.c
@@ -84,8 +84,8 @@ static node_t *node_new(const char *varname, const value_t value){
    replaces p's value with that from q and frees q */
 static void node_edit_value(node_t * p, node_t *q){  
   p->value = q->value;
-  // free(q->varname);
-  // free(q);
+  free(q->varname);
+  free(q);
 }
 
 static void node_free(node_t *p){
@@ -503,7 +503,7 @@ static int execute(void){
       return -1;
     }
     
-    if (stack_size() < 2){
+    if (stack_size() < 1){
       debug_printf("Mult from insufficient stack\n");
       return -1;
     }