+2010-03-23  Pedro Alves  <pedro@codesourcery.com>
+
+       * linux-x86-low.c (x86_linux_prepare_to_resume): Clear DR6 if the
+       lwp had been stopped by a watchpoint.
+
 2010-03-16  Pedro Alves  <pedro@codesourcery.com>
 
        * server.h (internal_error): Declare.
 
 static void
 x86_linux_prepare_to_resume (struct lwp_info *lwp)
 {
+  ptid_t ptid = ptid_of (lwp);
+
   if (lwp->arch_private->debug_registers_changed)
     {
       int i;
-      ptid_t ptid = ptid_of (lwp);
       int pid = ptid_get_pid (ptid);
       struct process_info *proc = find_process_pid (pid);
       struct i386_debug_reg_state *state = &proc->private->arch_private->debug_reg_state;
 
       lwp->arch_private->debug_registers_changed = 0;
     }
+
+  if (lwp->stopped_by_watchpoint)
+    x86_linux_dr_set (ptid, DR_STATUS, 0);
 }
 \f
 /* When GDBSERVER is built as a 64-bit application on linux, the