diff --git a/src/mbyte.c b/src/mbyte.c
index 6ab73f2..4e90593 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -2940,7 +2940,7 @@
 		    && dbcs_screen_head_off(ScreenLines + LineOffset[row],
 					 ScreenLines + LineOffset[row] + col))
 		|| (enc_utf8 && ScreenLines[LineOffset[row] + col] == 0)))
-	--col;
+	return col - 1;
     return col;
 }
 # endif
@@ -3008,31 +3008,31 @@
 
 	/* Change "microsoft-cp" to "cp".  Used in some spell files. */
 	if (STRNCMP(p, "microsoft-cp", 12) == 0)
-	    mch_memmove(p, p + 10, STRLEN(p + 10) + 1);
+	    STRMOVE(p, p + 10);
 
 	/* "iso8859" -> "iso-8859" */
 	if (STRNCMP(p, "iso8859", 7) == 0)
 	{
-	    mch_memmove(p + 4, p + 3, STRLEN(p + 2));
+	    STRMOVE(p + 4, p + 3);
 	    p[3] = '-';
 	}
 
 	/* "iso-8859n" -> "iso-8859-n" */
 	if (STRNCMP(p, "iso-8859", 8) == 0 && p[8] != '-')
 	{
-	    mch_memmove(p + 9, p + 8, STRLEN(p + 7));
+	    STRMOVE(p + 9, p + 8);
 	    p[8] = '-';
 	}
 
 	/* "latin-N" -> "latinN" */
 	if (STRNCMP(p, "latin-", 6) == 0)
-	    mch_memmove(p + 5, p + 6, STRLEN(p + 5));
+	    STRMOVE(p + 5, p + 6);
 
 	if (enc_canon_search(p) >= 0)
 	{
 	    /* canonical name can be used unmodified */
 	    if (p != r)
-		mch_memmove(r, p, STRLEN(p) + 1);
+		STRMOVE(r, p);
 	}
 	else if ((i = enc_alias_search(p)) >= 0)
 	{
@@ -3692,7 +3692,11 @@
     preedit_start_col = MAXCOL;
     xim_has_preediting = FALSE;
 
+#if 0
+    /* Removal of this line suggested by Takuhiro Nishioka.  Fixes that IM was
+     * switched off unintentionally. */
     im_is_active = FALSE;
+#endif
     gui_update_cursor(TRUE, FALSE);
     im_show_info();
 }
@@ -4144,6 +4148,7 @@
 	 * committed while we're processing one of these keys, we can ignore
 	 * that commit and go ahead & process it ourselves.  That way we can
 	 * still distinguish keypad keys for use in mappings.
+	 * Also add GDK_space to make <S-Space> work.
 	 */
 	switch (event->keyval)
 	{
@@ -4163,6 +4168,7 @@
 	    case GDK_KP_7:	  xim_expected_char = '7';  break;
 	    case GDK_KP_8:	  xim_expected_char = '8';  break;
 	    case GDK_KP_9:	  xim_expected_char = '9';  break;
+	    case GDK_space:	  xim_expected_char = ' ';  break;
 	    default:		  xim_expected_char = NUL;
 	}
 	xim_ignored_char = FALSE;
