diff --git a/src/cindent.c b/src/cindent.c
index 268d274..57add39 100644
--- a/src/cindent.c
+++ b/src/cindent.c
@@ -420,7 +420,7 @@
 }
 
 /*
- * Recognize a "public/private/protected" scope declaration label.
+ * Recognize a scope declaration label from the 'cinscopedecls' option.
  */
     static int
 cin_isscopedecl(char_u *p)
@@ -440,7 +440,7 @@
 
     for (cinsd = curbuf->b_p_cinsd; *cinsd; )
     {
-	len = copy_option_part(&cinsd, cinsd_buf, cinsd_len, ",");
+	len = copy_option_part(&cinsd, cinsd_buf, (int)cinsd_len, ",");
 	if (STRNCMP(s, cinsd_buf, len) == 0)
 	{
 	    skip = cin_skipcomment(s + len);
diff --git a/src/misc1.c b/src/misc1.c
index 3b8464e..28d4963 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -2343,7 +2343,7 @@
 	    || (len = ftell(fd)) == -1		// get size of temp file
 	    || fseek(fd, 0L, SEEK_SET) == -1)	// back to the start
     {
-	semsg(_(e_cannot_read_from_str), tempname);
+	semsg(_(e_cannot_read_from_str_2), tempname);
 	if (fd != NULL)
 	    fclose(fd);
 	goto done;
diff --git a/src/term.c b/src/term.c
index 8f3ee60..73c76cd 100644
--- a/src/term.c
+++ b/src/term.c
@@ -5957,7 +5957,7 @@
     int		i;
     int		slen;
     int		key;
-    int		dlen = 0;
+    size_t	dlen = 0;
     char_u	*src;
     int		do_backslash;	// backslash is a special character
     int		do_special;	// recognize <> key codes
@@ -5977,7 +5977,7 @@
      * In the rare case more might be needed ga_grow() must be called again.
      */
     ga_init2(&ga, 1L, 100);
-    if (ga_grow(&ga, STRLEN(src) * 6 + 1) == FAIL) // out of memory
+    if (ga_grow(&ga, (int)(STRLEN(src) * 6 + 1)) == FAIL) // out of memory
     {
 	*bufp = NULL;
 	return from;
@@ -6044,8 +6044,8 @@
 				// Turn "<SID>name.Func"
 				// into "scriptname#Func".
 				len = STRLEN(si->sn_autoload_prefix);
-				if (ga_grow(&ga, STRLEN(src) * 6 + len + 1)
-								       == FAIL)
+				if (ga_grow(&ga,
+				     (int)(STRLEN(src) * 6 + len + 1)) == FAIL)
 				{
 				    ga_clear(&ga);
 				    *bufp = NULL;
@@ -6064,7 +6064,7 @@
 		    result[dlen++] = (int)KS_EXTRA;
 		    result[dlen++] = (int)KE_SNR;
 		    sprintf((char *)result + dlen, "%ld", sid);
-		    dlen += (int)STRLEN(result + dlen);
+		    dlen += STRLEN(result + dlen);
 		    result[dlen++] = '_';
 		    continue;
 		}
diff --git a/src/version.c b/src/version.c
index fdc2508..bdefc25 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4773,
+/**/
     4772,
 /**/
     4771,
