diff --git a/fuzzer/Fuzzer.java b/fuzzer/Fuzzer.java
index 344a45f055c7f0e46fcd896a925a30dbed11b5bc..fed23b73d44e28392272da730080b47d2f84cc16 100644
--- a/fuzzer/Fuzzer.java
+++ b/fuzzer/Fuzzer.java
@@ -113,16 +113,19 @@ public class Fuzzer {
         switch (runCount){
             case 0:
                 // Test with stack full
-                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE);
+                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE, false);
             case 1:
                 // Test with stack full
-                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE - 1);
+                return generateInput(true, INSTRUCTION_MAX, MAX_STACK_SIZE - 1, false);
             case 3:
                 // Run static tests and empty stack
-                return getStaticTests() + generateInput(true, INSTRUCTION_MAX, 0);
+                return getStaticTests() + generateInput(true, INSTRUCTION_MAX, 0, false);
+            case 4:
+                // Test with dynamic probability
+                return generateInput(true, INSTRUCTION_MAX, 0, true);
         }
         // Run from random stack
-        return generateInput(true, INSTRUCTION_MAX, 0);
+        return generateInput(true, INSTRUCTION_MAX, 0, false);
     }
 
     /*
@@ -154,7 +157,7 @@ public class Fuzzer {
             boolean stackFull = rand.nextInt(100) < STACK_FULL_PERCENTAGE;
 
             result.append(generateInput(false,
-                                        INSTRUCTION_MAX, MAX_STACK_SIZE));
+                                        INSTRUCTION_MAX, MAX_STACK_SIZE, false));
             // Increment generated
             generated += 1;
         }
@@ -168,7 +171,7 @@ public class Fuzzer {
      * @param numInstructions for the line
      * @return the concatenated input for the program as a string
      */
-    private static String generateInput(boolean correct, long numInstructions, int stackPreload ){
+    private static String generateInput(boolean correct, long numInstructions, int stackPreload, boolean dynamicProb){
         int stackSize = 0;
         int counter = 0;
 
@@ -184,7 +187,9 @@ public class Fuzzer {
                 Instruction newInstr = Instruction.getRandomInstruction(stackSize, addProb);
                 stackSize = stackSize + newInstr.getStackChange();
                 result.append(completeInstruction(true, newInstr));
-                addCountProb(newInstr);
+                if (dynamicProb) {
+                    addCountProb(newInstr);
+                }
                 counter += 1;
             }
         } else {
@@ -193,11 +198,15 @@ public class Fuzzer {
                 if (rand.nextInt(100) < LINE_ERROR_PERCENTAGE){
                     newInstr = Instruction.getRandomInstruction(2, addProb);
                     result.append(completeInstruction(false, newInstr));
-                    addCountProb(newInstr);
+                    if (dynamicProb) {
+                        addCountProb(newInstr);
+                    }
                 } else {
                     newInstr = Instruction.getRandomInstruction(stackSize, addProb);
                     result.append(completeInstruction(true, newInstr));
-                    addCountProb(newInstr);
+                    if (dynamicProb) {
+                        addCountProb(newInstr);
+                    }
                 }
                 stackSize = stackSize + newInstr.getStackChange();
                 if (stackSize < 0){