updated for version 7.4.404
Problem:    Windows 64 bit compiler warnings.
Solution:   Add type casts. (Mike Williams)
diff --git a/src/crypt.c b/src/crypt.c
index 758ffb1..c54e15c 100644
--- a/src/crypt.c
+++ b/src/crypt.c
@@ -397,13 +397,13 @@
 	return method->encode_buffer_fn(state, from, len, newptr);
     if (len == 0)
 	/* Not buffering, just return EOF. */
-	return len;
+	return (long)len;
 
-    *newptr = alloc(len);
+    *newptr = alloc((long)len);
     if (*newptr == NULL)
 	return -1;
     method->encode_fn(state, from, len, *newptr);
-    return len;
+    return (long)len;
 }
 
 /*
diff --git a/src/undo.c b/src/undo.c
index 8f50f0f..db6ea29 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -992,7 +992,7 @@
     int	    bufi = 0;
 
     for (i = len - 1; i >= 0; --i)
-	buf[bufi++] = nr >> (i * 8);
+	buf[bufi++] = (char_u)(nr >> (i * 8));
     return undo_write(bi, buf, (size_t)len);
 }
 
@@ -1093,7 +1093,7 @@
 #ifdef FEAT_CRYPT
     if (bi->bi_buffer != NULL)
     {
-	int	size_todo = size;
+	int	size_todo = (int)size;
 	char_u	*p = buffer;
 
 	while (size_todo > 0)
@@ -1119,7 +1119,7 @@
 		n = bi->bi_avail - bi->bi_used;
 	    mch_memmove(p, bi->bi_buffer + bi->bi_used, n);
 	    bi->bi_used += n;
-	    size_todo -= n;
+	    size_todo -= (int)n;
 	    p += n;
 	}
 	return OK;
diff --git a/src/version.c b/src/version.c
index b832539..42369f1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    404,
+/**/
     403,
 /**/
     402,