diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog
index 5fa824e..57aa8a3 100644
--- a/testsuite/ChangeLog
+++ b/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2012-04-25  Peter Gavin  <pgavin@gmail.com>
+
+	* lib/libsim.exp, lib/or1ksim.exp: kill test processes that timeout
+
 2012-03-21  Jeremy Bennett  <jeremy.bennett@embecosm.com>
 
 	Patch from R Diez <rdiezmail-openrisc@yahoo.de>
diff --git a/testsuite/lib/libsim.exp b/testsuite/lib/libsim.exp
index c38439e..d4feb0c 100644
--- a/testsuite/lib/libsim.exp
+++ b/testsuite/lib/libsim.exp
@@ -116,6 +116,9 @@ proc run_libsim { testname match_list libprog config or1kprog args } {
 	    timeout {
 		perror "Timeout";
 		unresolved "$testname: timeout";
+                set test_pid [exp_pid]
+                close
+                exec "kill" "$test_pid"
 		return
 	    }
 	}
diff --git a/testsuite/lib/or1ksim.exp b/testsuite/lib/or1ksim.exp
index 640eb91..7c3047d 100644
--- a/testsuite/lib/or1ksim.exp
+++ b/testsuite/lib/or1ksim.exp
@@ -135,6 +135,9 @@ proc run_or1ksim { testname match_list config_file progname } {
 	    timeout {
 		perror "Timeout";
 		unresolved "$testname: timeout";
+                set test_pid [exp_pid]
+                close
+                exec "kill" "$test_pid"
 		return
 	    }
 	}
