diff --git a/src/eval.c b/src/eval.c
index 6547b46..448bd7f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -17583,6 +17583,7 @@
 	MSG_PUTS("...");
     }
     msg_putchar(')');
+    msg_clr_eos();
 #ifdef FEAT_EVAL
     if (p_verbose > 0)
 	last_set_msg(fp->uf_script_ID);
@@ -18934,12 +18935,19 @@
 last_set_msg(scriptID)
     scid_T scriptID;
 {
+    char_u *p;
+
     if (scriptID != 0)
     {
-	verbose_enter();
-	MSG_PUTS(_("\n\tLast set from "));
-	MSG_PUTS(get_scriptname(scriptID));
-	verbose_leave();
+	p = home_replace_save(NULL, get_scriptname(scriptID));
+	if (p != NULL)
+	{
+	    verbose_enter();
+	    MSG_PUTS(_("\n\tLast set from "));
+	    MSG_PUTS(p);
+	    vim_free(p);
+	    verbose_leave();
+	}
     }
 }
 
diff --git a/src/ex_getln.c b/src/ex_getln.c
index c6190be..544e76b 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -2369,17 +2369,24 @@
 	 * Do arabic shaping into a temporary buffer.  This is very
 	 * inefficient!
 	 */
-	if (len * 2 > buflen)
+	if (len * 2 + 2 > buflen)
 	{
 	    /* Re-allocate the buffer.  We keep it around to avoid a lot of
 	     * alloc()/free() calls. */
 	    vim_free(arshape_buf);
-	    buflen = len * 2;
+	    buflen = len * 2 + 2;
 	    arshape_buf = alloc(buflen);
 	    if (arshape_buf == NULL)
 		return;	/* out of memory */
 	}
 
+	if (utf_iscomposing(utf_ptr2char(ccline.cmdbuff + start)))
+	{
+	    /* Prepend a space to draw the leading composing char on. */
+	    arshape_buf[0] = ' ';
+	    newlen = 1;
+	}
+
 	for (j = start; j < start + len; j += mb_l)
 	{
 	    p = ccline.cmdbuff + j;
diff --git a/src/regexp.c b/src/regexp.c
index e212cc0..d72a7ef 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -6243,7 +6243,6 @@
     {
 	char_u	*str1, *str2;
 	int	c1, c2, c11, c12;
-	int	ix;
 	int	junk;
 
 	/* we have to handle the strcmp ourselves, since it is necessary to
@@ -6251,11 +6250,10 @@
 	str1 = s1;
 	str2 = s2;
 	c1 = c2 = 0;
-	for (ix = 0; ix < *n; )
+	while ((int)(str1 - s1) < *n)
 	{
 	    c1 = mb_ptr2char_adv(&str1);
 	    c2 = mb_ptr2char_adv(&str2);
-	    ix += utf_char2len(c1);
 
 	    /* decompose the character if necessary, into 'base' characters
 	     * because I don't care about Arabic, I will hard-code the Hebrew
diff --git a/src/screen.c b/src/screen.c
index 11d89b6..269c780 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3480,6 +3480,15 @@
 			if (mb_c < 0x80)
 			    c = mb_c;
 			mb_utf8 = TRUE;
+
+			/* At start of the line we can have a composing char.
+			 * Draw it as a space with a composing char. */
+			if (utf_iscomposing(mb_c))
+			{
+			    u8c_c2 = u8c_c1;
+			    u8c_c1 = mb_c;
+			    mb_c = ' ';
+			}
 		    }
 
 		    if ((mb_l == 1 && c >= 0x80)
diff --git a/src/search.c b/src/search.c
index 3013d13..37b3873 100644
--- a/src/search.c
+++ b/src/search.c
@@ -1105,7 +1105,16 @@
 	    if (msgbuf != NULL)
 	    {
 		msgbuf[0] = dirc;
-		STRCPY(msgbuf + 1, p);
+#ifdef FEAT_MBYTE
+		if (enc_utf8 && utf_iscomposing(utf_ptr2char(p)))
+		{
+		    /* Use a space to draw the composing char on. */
+		    msgbuf[1] = ' ';
+		    STRCPY(msgbuf + 2, p);
+		}
+		else
+#endif
+		    STRCPY(msgbuf + 1, p);
 		if (spats[0].off.line || spats[0].off.end || spats[0].off.off)
 		{
 		    p = msgbuf + STRLEN(msgbuf);
diff --git a/src/version.h b/src/version.h
index 208f7a5..5fd353d 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 5)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 5, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 6)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Sep 6, compiled "
