diff -ruNp gdb-7.2/gdb/remote.c gdb-7.2.new/gdb/remote.c
--- gdb-7.2/gdb/remote.c	2012-08-27 06:32:14.000000000 -0400
+++ gdb-7.2.new/gdb/remote.c	2012-08-27 06:39:20.399266874 -0400
@@ -5684,7 +5684,23 @@ process_g_packet (struct regcache *regca
 
   /* Further sanity checks, with knowledge of the architecture.  */
   if (buf_len > 2 * rsa->sizeof_g_packet)
-    error (_("Remote 'g' packet reply is too long: %s"), rs->buf);
+    {
+      for (i = 0; i < gdbarch_num_regs (gdbarch); i++)
+	{
+	  struct packet_reg *r = &rsa->regs[i];
+
+	  if (r->offset >= rsa->sizeof_g_packet)
+	    {
+	      r->in_g_packet = 1;
+	      regcache_raw_supply (regcache, r->regnum, NULL);
+	    }
+	  else
+	    r->in_g_packet = 0;
+	}
+      return;
+
+      /* error (_("Remote 'g' packet reply is too long: %s"), rs->buf); */
+    }
 
   /* Save the size of the packet sent to us by the target.  It is used
      as a heuristic when determining the max size of packets that the
