Index: gdb-6.4/gdb/infrun.c =================================================================== --- gdb-6.4.orig/gdb/infrun.c 2005-11-14 21:05:16.000000000 +0530 +++ gdb-6.4/gdb/infrun.c 2006-01-17 20:57:44.431069776 +0530 @@ -1367,6 +1367,7 @@ value_from_longest (builtin_type_int, (LONGEST) ecs->ws.value.integer)); gdb_flush (gdb_stdout); + mark_thrd_event_bpt_clean(); target_mourn_inferior (); singlestep_breakpoints_inserted_p = 0; /*SOFTWARE_SINGLE_STEP_P() */ stop_print_frame = 0; Index: gdb-6.4/gdb/breakpoint.c =================================================================== --- gdb-6.4.orig/gdb/breakpoint.c 2005-05-29 08:43:17.000000000 +0530 +++ gdb-6.4/gdb/breakpoint.c 2006-01-17 21:00:00.899323448 +0530 @@ -4289,6 +4289,17 @@ delete_breakpoint (b); } +void +mark_thrd_event_bpt_clean (void) +{ + + struct breakpoint *b, *temp; + + ALL_BREAKPOINTS_SAFE (b, temp) + if (b->type == bp_thread_event) + b->loc->inserted = 0; +} + struct captured_parse_breakpoint_args { char **arg_p; Index: gdb-6.4/gdb/breakpoint.h =================================================================== --- gdb-6.4.orig/gdb/breakpoint.h 2005-05-27 02:18:57.000000000 +0530 +++ gdb-6.4/gdb/breakpoint.h 2006-01-17 21:01:07.244237488 +0530 @@ -763,6 +763,8 @@ extern void remove_thread_event_breakpoints (void); +extern void mark_thrd_event_bpt_clean (void); + extern void disable_breakpoints_in_shlibs (int silent); extern void re_enable_breakpoints_in_shlibs (void);