diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java
index 51a292262b3bb29182f127e5b81391af34551d38..9c854bf9427d708b03fe6db7de33413c2311b692 100644
--- a/fuzzer/Fuzzer.java
+++ b/fuzzer/Fuzzer.java
@@ -21,11 +21,9 @@ public class Fuzzer {
             /* We just print one instruction.
                Hint: you might want to make use of the instruction
                grammar which is effectively encoded in Instruction.java */
-            pw.println("MOV R1 1");
-            pw.println("MOV R2 0");
-            pw.println("DIV R0 R1 R2");
-            pw.println("ADD R2 R0 R1");
-            pw.println("RET R2");
+            pw.println("MOV R0 65535");
+            pw.println("LDR R2 R0 0");
+            pw.println("RET R2");           
             
         }catch (Exception e){
             e.printStackTrace(System.err);
diff --git a/src/machine-vuln1.c b/src/machine-vuln1.c
index 3b7782b3a33f0f2743a7c387dc59d90a7077450a..7b2d5fb0c23465dd08bd4f937d995803e93b1998 100644
--- a/src/machine-vuln1.c
+++ b/src/machine-vuln1.c
@@ -55,7 +55,8 @@ unsigned int count = 0; /* counts number of instructions executed so far */
 
 
 static void machine_init(void){
-  memory = malloc(sizeof(int32_t)*MEMORY_SIZE);
+  /*Change doesn't clean all of memory, doing a read on the last memory loc vuln*/
+  memory = malloc(sizeof(int32_t)*(MEMORY_SIZE-1));
   regs = malloc(sizeof(int32_t)*NUM_REGS);
 
   /* memset can be vulnerable - changes to this can result in dirty memory to be read*/
@@ -86,11 +87,14 @@ static void do_mult(unsigned int dest, unsigned int src1, unsigned int src2)
 }
 
 /* returns 0 on success, nonzero on failure */
-/*CHANGE - Divide by Zero now possible*/
 static int do_div(unsigned int dest, unsigned int src1, unsigned int src2)
 {
+  if (regs[src2] == 0){
+    return -1;
+  }else{
     regs[dest] = regs[src1] / regs[src2];
     return 0;
+  }
 }
 
 /* returns 0 on success, nonzero on failure */