diff --git a/TODO.txt b/TODO.txt
index ac770113572b80957051f603dcdc1dea4dce93c7..85898eeb001960890443c7cb9a0ae49c36ae5bb4 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -49,8 +49,6 @@ Critical
    STYLE
    Directory structure for config.ini includes
    encrypt/secure pipe transfers
- x readFile() bug where lines have ':' or '?' in them?!
-      long term style solution
  x safer cross-platform exec()
     x setenv("PATH"...) to safe path and use execlp
    remove all system() calls
@@ -78,5 +76,8 @@ Doesn't really matter
  d processsOptions errors
    fix unknown times, maybe only output timeout
    remove additional output under valgrind
+   readFile() bug where lines have ':' or '?' in them?!
+    x fix immediate bug
+      long term style solution
 
 
diff --git a/proxy.cpp b/proxy.cpp
index 9e2506a83c1ee338ac92cf042d0982f7c88dcc86..08f4b8c38b8b8ea7b4e9ae262d522559c2f83193 100755
--- a/proxy.cpp
+++ b/proxy.cpp
@@ -500,10 +500,7 @@ void test_execution::child_valgrind()
 	nums_pipe.close_write();
 	
 	start_timeout();
-	execl("/usr/bin/valgrind", "/usr/bin/valgrind", "--trace-children=yes", /*"--log-fd=-1",*/ "-q", "./proxy", test.name, NULL);
-	
-	// Execl failed
-	EXIT_IF_ERROR(true, "valgrind execute failed");
+	exec("valgrind", "valgrind", "--trace-children=yes", /*"--log-fd=-1",*/ "-q", "./proxy", test.name, NULL);
 }