diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 4939d28218d..22a03e805b8 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2008-10-24  Pedro Alves  <pedro@codesourcery.com>
+
+	* gdb.python/python-value.exp (test_value_in_inferior): Don't use
+	gdb_start_cmd.
+	Use runto_main before any test that requires execution.
+
 2008-10-23  Pedro Alves  <pedro@codesourcery.com>
 
 	* lib/mi-support.exp (mi_expect_interrupt): Expect signal 0
diff --git a/gdb/testsuite/gdb.python/python-value.exp b/gdb/testsuite/gdb.python/python-value.exp
index 7515ab791f1..99b576addf4 100644
--- a/gdb/testsuite/gdb.python/python-value.exp
+++ b/gdb/testsuite/gdb.python/python-value.exp
@@ -199,11 +199,6 @@ proc test_value_in_inferior {} {
   global testfile
 
   gdb_breakpoint [gdb_get_line_number "break to inspect struct and union"]
-  gdb_start_cmd
-
-  # Avoid race condition where a continue command in gdb_continue_to_breakpoint
-  # is issued too early.
-  gdb_test "" "$gdb_prompt"
 
   gdb_continue_to_breakpoint "break to inspect struct and union"
 
@@ -247,4 +242,12 @@ test_value_creation
 test_value_numeric_ops
 test_value_boolean
 test_value_compare
+
+# The following tests require execution.
+
+if ![runto_main] then {
+    fail "Can't run to main"
+    return 0
+}
+
 test_value_in_inferior