Index: src/server/gdb_server.c
===================================================================
--- src/server/gdb_server.c	(revision 768)
+++ src/server/gdb_server.c	(working copy)
@@ -1503,7 +1503,7 @@
 		int size = 0;
 
 		xml_printf(&retval, &buffer, &pos, &size,
-				"PacketSize=%x;qXfer:memory-map:read%c;qXfer:features:read-",
+				"PacketSize=%x;qXfer:memory-map:read%c;qXfer:features:read+",
 				(GDB_BUFFER_SIZE - 1), gdb_use_memory_map == 1 ? '+' : '-');
 
 		if (retval != ERROR_OK)
@@ -1648,9 +1648,40 @@
 			gdb_send_error(connection, 01);
 			return ERROR_OK;
 		}
-
+		
 		xml_printf(&retval, &xml, &pos, &size, \
-			"l<target version=\"1.0\">\n<architecture>arm</architecture>\n</target>\n");
+			"l" \
+				"<?xml version=\"1.0\"?><!DOCTYPE target SYSTEM \"gdb-target.dtd\">"
+				"<target>"
+				"<feature name=\"org.gnu.gdb.arm.core-v7m\">\n"
+  					"<reg name=\"r0\" bitsize=\"32\"/>\n"
+  					"<reg name=\"r1\" bitsize=\"32\"/>\n"
+  					"<reg name=\"r2\" bitsize=\"32\"/>\n"
+					"<reg name=\"r3\" bitsize=\"32\"/>\n"
+					"<reg name=\"r4\" bitsize=\"32\"/>\n"
+					"<reg name=\"r5\" bitsize=\"32\"/>\n"
+					"<reg name=\"r6\" bitsize=\"32\"/>\n"
+					"<reg name=\"r7\" bitsize=\"32\"/>\n"
+					"<reg name=\"r8\" bitsize=\"32\"/>\n"
+					"<reg name=\"r9\" bitsize=\"32\"/>\n"
+					"<reg name=\"r10\" bitsize=\"32\"/>\n"
+					"<reg name=\"r11\" bitsize=\"32\"/>\n"
+					"<reg name=\"r12\" bitsize=\"32\"/>\n"
+					"<reg name=\"sp\" bitsize=\"32\" type=\"data_ptr\"/>\n"
+					"<reg name=\"lr\" bitsize=\"32\"/>\n"
+					"<reg name=\"pc\" bitsize=\"32\" type=\"code_ptr\"/>\n"
+					"<reg name=\"xpsr\" bitsize=\"32\" regnum=\"25\"/>\n"
+					"<reg name=\"f0\" bitsize=\"96\" type=\"arm_fpa_ext\" regnum=\"16\"/>\n"
+					"<reg name=\"f1\" bitsize=\"96\" type=\"arm_fpa_ext\"/>\n"
+					"<reg name=\"f2\" bitsize=\"96\" type=\"arm_fpa_ext\"/>\n"
+					"<reg name=\"f3\" bitsize=\"96\" type=\"arm_fpa_ext\"/>\n"
+					"<reg name=\"f4\" bitsize=\"96\" type=\"arm_fpa_ext\"/>\n"
+					"<reg name=\"f5\" bitsize=\"96\" type=\"arm_fpa_ext\"/>\n"
+					"<reg name=\"f6\" bitsize=\"96\" type=\"arm_fpa_ext\"/>\n"
+					"<reg name=\"f7\" bitsize=\"96\" type=\"arm_fpa_ext\"/>\n"
+					"<reg name=\"fps\" bitsize=\"32\"/>\n"
+				"</feature>\n"
+			"</target>\n");
 
 		if (retval != ERROR_OK)
 		{
Index: src/target/armv7m.h
===================================================================
--- src/target/armv7m.h	(revision 768)
+++ src/target/armv7m.h	(working copy)
@@ -28,7 +28,7 @@
 #include "arm_jtag.h"
 
 /* define for enabling armv7 gdb workarounds */
-#if 1
+#if 0
 #define ARMV7_GDB_HACKS
 #endif
 

