diff --git a/src/change.c b/src/change.c
index 5cddf9b..c48d254 100644
--- a/src/change.c
+++ b/src/change.c
@@ -1203,8 +1203,8 @@
     mch_memmove(newp + col, s, slen);
     mch_memmove(newp + col + slen, oldp + col, (size_t)(oldlen - col + 1));
     ml_replace(lnum, newp, FALSE);
-    inserted_bytes(lnum, col, slen);
-    curwin->w_cursor.col += slen;
+    inserted_bytes(lnum, col, (int)slen);
+    curwin->w_cursor.col += (colnr_T)slen;
 }
 
 /*
diff --git a/src/edit.c b/src/edit.c
index 3fa95cd..53428e0 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -2962,7 +2962,7 @@
 
     do
     {
-	stuffReadbuffLen(insert.string, insert.length);
+	stuffReadbuffLen(insert.string, (long)insert.length);
 	// a trailing "0" is inserted as "<C-V>048", "^" as "<C-V>^"
 	switch (last)
 	{
@@ -5468,7 +5468,7 @@
 
     // Lock the text to avoid weird things from happening.
     ++textlock;
-    set_vim_var_string(VV_CHAR, buf, buflen);  // set v:char
+    set_vim_var_string(VV_CHAR, buf, (int)buflen);  // set v:char
 
     res = NULL;
     if (ins_apply_autocmds(EVENT_INSERTCHARPRE))
diff --git a/src/findfile.c b/src/findfile.c
index 2bd1e7e..fd2d69f 100644
--- a/src/findfile.c
+++ b/src/findfile.c
@@ -1166,7 +1166,8 @@
 			    if (*suf == NUL)
 				break;
 			    file_path.length = len + copy_option_part(&suf,
-				  file_path.string + len, MAXPATHL - len, ",");
+				  file_path.string + len,
+				  (int)(MAXPATHL - len), ",");
 			}
 		    }
 		}
diff --git a/src/insexpand.c b/src/insexpand.c
index 41aa3f9..3c81749 100644
--- a/src/insexpand.c
+++ b/src/insexpand.c
@@ -1797,7 +1797,7 @@
     if (in_fuzzy_collect)
     {
 	leader = ins_compl_leader();
-	leader_len = ins_compl_leader_len();
+	leader_len = (int)ins_compl_leader_len();
     }
 
     for (i = 0; i < count && !got_int && !compl_interrupted; i++)
@@ -4642,7 +4642,7 @@
     int	has_preinsert = ins_compl_preinsert_effect();
     if (has_preinsert)
     {
-	col += ins_compl_leader_len();
+	col += (int)ins_compl_leader_len();
 	curwin->w_cursor.col = compl_ins_end_col;
     }
 
diff --git a/src/popupmenu.c b/src/popupmenu.c
index a7c20c1..294823b 100644
--- a/src/popupmenu.c
+++ b/src/popupmenu.c
@@ -478,7 +478,7 @@
 	else
 	{
 	    if (matched_len < 0 && MB_STRNICMP(ptr, leader, leader_len) == 0)
-		matched_len = leader_len;
+		matched_len = (int)leader_len;
 	    if (matched_len > 0)
 	    {
 		new_attr = highlight_attr[is_select ? HLF_PMSI : HLF_PMNI];
@@ -765,7 +765,7 @@
 						MB_PTR_ADV(orig_rt);
 						last_char = orig_rt;
 					    }
-					    kept_len = STRLEN(last_char);
+					    kept_len = (int)STRLEN(last_char);
 					    new_str = alloc(ellipsis_width + over_cell + kept_len + 1);
 					    if (!new_str)
 						return;
diff --git a/src/version.c b/src/version.c
index 5063274..c90c7b5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1266,
+/**/
     1265,
 /**/
     1264,
