diff --git a/pykat/testing/test.py b/pykat/testing/test.py
index 30d4b4062b00c95d768deada839ae58c6d4165fd..4d6f601268b1015cb87b20f4f473181fdc02ea68 100644
--- a/pykat/testing/test.py
+++ b/pykat/testing/test.py
@@ -126,7 +126,9 @@ class FinesseTestProcess(Thread):
         self.built = False
 
         BUILD_PATH = os.path.join(self.BASE_DIR, "build")
-                    
+
+        print "NOBUILD", self.nobuild
+        
         # Firstly we need to build the latest version of finesse
         if not self.nobuild:
             
diff --git a/pykat/testing/utils.py b/pykat/testing/utils.py
index ae8b361dfac7928c11910a00543892e9c3d18c1e..0e68a7f28417f13b1d48275aaf6f4c7935ad6c98 100644
--- a/pykat/testing/utils.py
+++ b/pykat/testing/utils.py
@@ -20,7 +20,7 @@ def runcmd(args, cwd="."):
     out, err = p.communicate()
     
     if p.returncode != 0:
-        print "STDERR: " + errk
+        print "STDERR: " + err
         print "STDOUT: " + out
         raise RunException(p.returncode, args, err, out)
 
diff --git a/pykat/testing/web/templates/finesse_test.html b/pykat/testing/web/templates/finesse_test.html
index 15fcfca385a5767fc970a81a01030607529e5de2..487dcfd524b324c1666a2d28b53c7b2288bdb9ee 100644
--- a/pykat/testing/web/templates/finesse_test.html
+++ b/pykat/testing/web/templates/finesse_test.html
@@ -67,7 +67,9 @@
                 </select>
                 
                 <input type="button" value="Refresh" id="btnGetLogs"/>
+                <br/>
                 
+                <input type="checkbox" id="chkNoBuild" />Use previously built kat (Will built if it can't find any previous kats of the requested version)<br>
                 <input type="button" value="Start new FINESSSE test" id="btnStartTest"/>
                 
                 <section class="container">
@@ -350,7 +352,8 @@
                 }
                 
                 list = $("#commit_list");
-                data = JSON.stringify({"git_commit": list.val(), "kats":kats});
+                
+                data = JSON.stringify({"git_commit": list.val(), "kats":kats, "nobuild":$('#chkNoBuild').is(':checked')});
                 
                 $.ajax({
                   type: "POST",
diff --git a/pykat/testing/web/web_interface.py b/pykat/testing/web/web_interface.py
index 8ab97008868c9716dc8fb103f1a55111c5f5335e..51f174c7931421d722466a08711e8e827d799616 100644
--- a/pykat/testing/web/web_interface.py
+++ b/pykat/testing/web/web_interface.py
@@ -61,9 +61,9 @@ else:
 SRC_GIT_PATH = os.path.join(app.instance_path, "finesse_src",".git")
 
 # get HEAD commit to set as starting point for commit checker
-latest_data = utils.git(["log","-2",'--pretty=format:"%H"'],cwd=SRC_GIT_PATH)
-
-latest_commit_id_tested = latest_data[0].split("\n")[1].replace('"',"").replace("\\","")
+prev_commits = 10
+latest_data = utils.git(["log","-" + str(prev_commits),'--pretty=format:"%H"'],cwd=SRC_GIT_PATH)
+latest_commit_id_tested = latest_data[0].split("\n")[prev_commits-1].replace('"',"").replace("\\","")
 
 print "loading web interface"
 
@@ -327,10 +327,17 @@ def finesse_start_rerun(id):
     
 @app.route('/finesse/start_test', methods=["POST"])
 def finesse_start_test():
+    nobuild = False
+        
+    if "nobuild" in request.json:
+        if request.json["nobuild"] == True:
+            nobuild = True
+        else:
+            nobuild = False
     
-    return jsonify(__finesse_start_test(request.json["git_commit"], request.json["kats"]))
+    return jsonify(__finesse_start_test(request.json["git_commit"], request.json["kats"], nobuild))
     
-def __finesse_start_test(git_commit, kats):
+def __finesse_start_test(git_commit, kats, nobuild=False):
     global current_test, test_id
     
     try:
@@ -350,11 +357,31 @@ def __finesse_start_test(git_commit, kats):
             
         os.mkdir(TEST_RUN_PATH)
         
+        # if we are not building then check to see if we can find a previous version
+        # of kat and if so put it in the correct folder for the test to find
+        if nobuild:
+            if sys.platform == "win32":
+                EXE = ".exe"
+            else:
+                EXE = ""
+                
+            TEST_BUILD_PATH = os.path.join(TEST_RUN_PATH,"build")
+            KAT_EXE = os.path.join(app.instance_path, "kat_store", "kat_" + str(git_commit) + EXE)
+            
+            if os.path.exists(KAT_EXE):
+                print "using existing kat file " + KAT_EXE
+                utils.git(["clone","git://gitmaster.atlas.aei.uni-hannover.de/finesse/base.git",TEST_BUILD_PATH])
+                KAT_NEW_EXE = os.path.join(TEST_BUILD_PATH,"kat" + EXE)
+                shutil.copyfile(KAT_EXE, KAT_NEW_EXE)
+                
+          
+        print "nobuild", nobuild
+        
         test = finesse_test.FinesseTestProcess(os.path.join(app.instance_path, "finesse_test"), 
                                       TEST_RUN_PATH,
                                       git_commit, 
                                       run_fast=False, kats=kats, test_id=test_id,
-                                      emails="", nobuild=False)
+                                      emails="", nobuild=nobuild)
         
         db.insert(dict(t="test",
                        test_id=test.test_id,