diff -urN src/gdb/gdbserver/server.c dev/gdb/gdbserver/server.c --- src/gdb/gdbserver/server.c 2007-03-29 05:37:17.000000000 +0200 +++ dev/gdb/gdbserver/server.c 2007-04-27 12:31:45.000000000 +0200 @@ -259,6 +259,14 @@ { static struct inferior_list_entry *thread_ptr; + /* Reply the current thread id. */ + if (strcmp ("qC", own_buf) == 0) + { + sprintf (own_buf, "QC %lx", + ((struct inferior_list_entry *) current_inferior)->id); + return; + } + if (strcmp ("qSymbol::", own_buf) == 0) { if (the_target->look_up_symbols != NULL) diff -urN src/gdb/remote.c dev/gdb/remote.c --- src/gdb/remote.c 2007-03-28 05:42:54.000000000 +0200 +++ dev/gdb/remote.c 2007-04-27 12:29:21.000000000 +0200 @@ -2096,9 +2096,7 @@ /* Ack any packet which the remote side has already sent. */ serial_write (remote_desc, "+", 1); - /* Let the stub know that we want it to return the thread. */ - set_thread (-1, 0); - + /* Get the pid of the first thread. */ inferior_ptid = remote_current_thread (inferior_ptid); get_offsets (); /* Get text, data & bss offsets. */