Index: gtkimcontextsimple.c
===================================================================
--- gtkimcontextsimple.c	(revision 22222)
+++ gtkimcontextsimple.c	(working copy)
@@ -286,6 +286,34 @@
   if (n_compose > table->max_seq_len)
     return FALSE;
   
+#ifdef GDK_WINDOWING_WIN32
+  /* At least on Windows, user expectation is that typing a dead
+   * accent followed by space will input the corresponding spacing
+   * accent. The X compose tables are different for dead acute and
+   * diaeresis, which when followed by space produce a plain ASCII
+   * apostrophe and double quote respectively. So special-case those.
+   */
+  if (n_compose == 2 &&
+      context_simple->compose_buffer[1] == GDK_space)
+    {
+      gunichar value = 0;
+
+      switch (context_simple->compose_buffer[0])
+	{
+	case GDK_dead_acute:
+	  value = 0x00B4; break;
+	case GDK_dead_diaeresis:
+	  value = 0x00A8; break;
+	}
+      if (value > 0)
+	{
+	  gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
+	  context_simple->compose_buffer[0] = 0;
+	  return TRUE;
+	}
+    }
+#endif
+
   seq_index = bsearch (context_simple->compose_buffer,
 		 table->data, table->n_index_size,
 		 sizeof (guint16) *  table->n_index_stride, 
