updated for version 7.1-055
diff --git a/src/buffer.c b/src/buffer.c
index 8bd3a35..6d44fa7 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -4860,7 +4860,7 @@
 	     */
 	    for (e = s; *e != ':' && *e != NUL; ++e)
 		if (e[0] == '\\' && e[1] == ':')
-		    STRCPY(e, e + 1);
+		    mch_memmove(e, e + 1, STRLEN(e));
 	    if (*e == NUL)
 		end = TRUE;
 
diff --git a/src/charset.c b/src/charset.c
index 5436bb4..8f058bd 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1898,7 +1898,7 @@
 {
     for ( ; *p; ++p)
 	if (rem_backslash(p))
-	    STRCPY(p, p + 1);
+	    mch_memmove(p, p + 1, STRLEN(p));
 }
 
 /*
diff --git a/src/eval.c b/src/eval.c
index 1b26747..30bae9c 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -13807,7 +13807,7 @@
 	    }
 	    /* Shorten "remain". */
 	    if (*q != NUL)
-		STRCPY(remain, q - 1);
+		mch_memmove(remain, q - 1, STRLEN(q - 1) + 1);
 	    else
 	    {
 		vim_free(remain);
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 206da80..3ddec29 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4306,10 +4306,11 @@
 			    && pat[i + 1] == '\\'
 			    && pat[i + 2] == '\\'
 			    && pat[i + 3] == ' ')
-			STRCPY(pat + i, pat + i + 3);
+			mch_memmove(pat + i, pat + i + 3,
+						     STRLEN(pat + i + 3) + 1);
 		    if (xp->xp_backslash == XP_BS_ONE
 			    && pat[i + 1] == ' ')
-			STRCPY(pat + i, pat + i + 1);
+			mch_memmove(pat + i, pat + i + 1, STRLEN(pat + i));
 		}
 	}
 
@@ -4552,7 +4553,7 @@
     pat = vim_strsave(filepat);
     for (i = 0; pat[i]; ++i)
 	if (pat[i] == '\\' && pat[i + 1] == ' ')
-	    STRCPY(pat + i, pat + i + 1);
+	    mch_memmove(pat + i, pat + i + 1, STRLEN(pat + i));
 
     flags |= EW_FILE | EW_EXEC;
 
diff --git a/src/misc1.c b/src/misc1.c
index 816c947..be2c244 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -8635,7 +8635,7 @@
     for (p = buf + wildoff; p < s; ++p)
 	if (rem_backslash(p))
 	{
-	    STRCPY(p, p + 1);
+	    mch_memmove(p, p + 1, STRLEN(p));
 	    --e;
 	    --s;
 	}
@@ -8936,7 +8936,7 @@
     for (p = buf + wildoff; p < s; ++p)
 	if (rem_backslash(p))
 	{
-	    STRCPY(p, p + 1);
+	    mch_memmove(p, p + 1, STRLEN(p));
 	    --e;
 	    --s;
 	}
diff --git a/src/regexp.c b/src/regexp.c
index 071663f..6db9139 100644
--- a/src/regexp.c
+++ b/src/regexp.c
@@ -6637,9 +6637,9 @@
 		}
 	    }
 	    else if (magic)
-		STRCPY(p, p + 1);		/* remove '~' */
+		mch_memmove(p, p + 1, STRLEN(p));	/* remove '~' */
 	    else
-		STRCPY(p, p + 2);		/* remove '\~' */
+		mch_memmove(p, p + 2, STRLEN(p) - 1);	/* remove '\~' */
 	    --p;
 	}
 	else
diff --git a/src/termlib.c b/src/termlib.c
index 2091115..33f332a 100644
--- a/src/termlib.c
+++ b/src/termlib.c
@@ -191,7 +191,7 @@
 	    lbuf[0] == '\t' &&
 	    lbuf[1] == ':')
 	{
-	    strcpy(lbuf, lbuf+2);
+	    mch_memmove(lbuf, lbuf + 2, strlen(lbuf + 2) + 1);
 	    llen -= 2;
 	}
 	if (lbuf[llen-2] == '\\')		/* and continuations */
diff --git a/src/version.c b/src/version.c
index d486d60..5be707f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    55,
+/**/
     54,
 /**/
     53,