diff --git a/mutants/mutant-4/swen90006/machine/Machine.java b/mutants/mutant-4/swen90006/machine/Machine.java
index 9bf57316d1c736ea2bd1c62bd6df3c6c0282f331..f5e5c1ef8a89049a16778ded1d0097ce2ec88773 100644
--- a/mutants/mutant-4/swen90006/machine/Machine.java
+++ b/mutants/mutant-4/swen90006/machine/Machine.java
@@ -1,3 +1,6 @@
+//abs value of register value in ADD:
+//may not be caught if test cases don't include
+//negative values for ADD insturction.
 package swen90006.machine;
 
 import java.util.Arrays;
@@ -58,7 +61,11 @@ public class Machine
 
   private void do_add(int dest, int src1, int src2)
   {
-    regs[dest] = regs[src1] + regs[src2];
+    regs[dest] = regs[src1] + abs(regs[src2]);
+//abs value of register value in ADD:
+//may not be caught if test cases don't include
+//negative values for ADD insturction.
+
   }
     
   private void do_sub(int dest, int src1, int src2)
@@ -77,6 +84,7 @@ public class Machine
       /* no op */
     }else{
       regs[dest] = regs[src1] / regs[src2];
+
     }
   }
 
@@ -168,9 +176,10 @@ public class Machine
 
     int instructionsExecuted = 0;
     int pc = 0;
-    final int progLength = instructions.size();
+    final int progLength = instructions.size()-1;
     while(true){
       if (pc < 0 || pc >= progLength){
+
 	/* will cause NoReturnValueException to be thrown
 	 * but that is not a bug and and indeed is what the
 	 * VM is supposed to do if the pc becomes negative,