diff --git a/src/memline.c b/src/memline.c
index 9ef1f60..89e2e15 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -562,7 +562,7 @@
 			    /* Skip data block with negative block number.
 			     * Should not happen, because of the ml_preserve()
 			     * above. Get same block again for next index. */
-			    ++idx; 
+			    ++idx;
 			    continue;
 			}
 
@@ -3350,7 +3350,7 @@
 			internal_error("no text property below deleted line");
 		    return;
 		}
-		this_props_len = line_size - textlen;
+		this_props_len = line_size - (int)textlen;
 	    }
 
 	    found = FALSE;
@@ -3489,7 +3489,7 @@
 
 	if ((long)textlen < line_size)
 	{
-	    textprop_save_len = line_size - textlen;
+	    textprop_save_len = line_size - (int)textlen;
 	    textprop_save = vim_memsave((char_u *)dp + line_start + textlen,
 							  textprop_save_len);
 	}
@@ -5379,7 +5379,7 @@
 		    // the text prop info would also be counted.  Go over the
 		    // lines.
 		    for (i = end_idx; i < idx; ++i)
-			size += STRLEN((char_u *)dp + (dp->db_index[i] & DB_INDEX_MASK)) + 1;
+			size += (int)STRLEN((char_u *)dp + (dp->db_index[i] & DB_INDEX_MASK)) + 1;
 		}
 		else
 #endif
@@ -5588,7 +5588,7 @@
 	    // lengths.
 	    len = 0;
 	    for (i = start_idx; i <= idx; ++i)
-		len += STRLEN((char_u *)dp + ((dp->db_index[i]) & DB_INDEX_MASK)) + 1;
+		len += (int)STRLEN((char_u *)dp + ((dp->db_index[i]) & DB_INDEX_MASK)) + 1;
 	}
 	else
 #endif
diff --git a/src/textprop.c b/src/textprop.c
index bc41e8f..578f6e9 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -262,9 +262,9 @@
 	if (lnum == end_lnum)
 	    length = end_col - col;
 	else
-	    length = textlen - col + 1;
+	    length = (int)textlen - col + 1;
 	if (length > (long)textlen)
-	    length = textlen;	// can include the end-of-line
+	    length = (int)textlen;	// can include the end-of-line
 	if (length < 0)
 	    length = 0;		// zero-width property
 
@@ -972,7 +972,7 @@
     if (dirty)
     {
 	curbuf->b_ml.ml_flags |= ML_LINE_DIRTY;
-	curbuf->b_ml.ml_line_len = textlen + wi * sizeof(textprop_T);
+	curbuf->b_ml.ml_line_len = (int)textlen + wi * sizeof(textprop_T);
     }
 }
 
diff --git a/src/version.c b/src/version.c
index c337967..0493ec4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -800,6 +800,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    684,
+/**/
     683,
 /**/
     682,
