diff --git a/src/if_mzsch.c b/src/if_mzsch.c
index 93e4b6c..1861df4 100644
--- a/src/if_mzsch.c
+++ b/src/if_mzsch.c
@@ -545,7 +545,7 @@
 
 # if MZSCHEME_VERSION_MAJOR >= 500
 #  if defined(IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS) || defined(IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC)
-/* define as function for macro in schshread.h */
+/* define as function for macro in schthread.h */
 Thread_Local_Variables *
 scheme_external_get_thread_local_variables(void)
 {
@@ -894,7 +894,7 @@
 /* timers are presented in GUI only */
 # if defined(FEAT_GUI_W32)
     static void CALLBACK
-timer_proc(HWND hwnd UNUSED, UINT uMsg UNUSED, UINT idEvent UNUSED, DWORD dwTime UNUSED)
+timer_proc(HWND hwnd UNUSED, UINT uMsg UNUSED, UINT_PTR idEvent UNUSED, DWORD dwTime UNUSED)
 # elif defined(FEAT_GUI_GTK)
 #  if GTK_CHECK_VERSION(3,0,0)
     static gboolean
@@ -3571,7 +3571,7 @@
 
 	info = scheme_make_byte_string(add_info);
 	MZ_GC_CHECK();
-	c_string = scheme_format_utf8(fmt, STRLEN(fmt), 1, &info, NULL);
+	c_string = scheme_format_utf8(fmt, (int)STRLEN(fmt), 1, &info, NULL);
 	MZ_GC_CHECK();
 	byte_string = scheme_make_byte_string(c_string);
 	MZ_GC_CHECK();
diff --git a/src/if_perl.xs b/src/if_perl.xs
index aab7ade..a489994 100644
--- a/src/if_perl.xs
+++ b/src/if_perl.xs
@@ -1075,7 +1075,8 @@
 	{
 	    size_t  len		= 0;
 	    char *  str_from	= SvPV(sv, len);
-	    char_u *str_to	= (char_u*)alloc(sizeof(char_u) * (len + 1));
+	    char_u *str_to	= (char_u*)alloc(
+				      (unsigned)(sizeof(char_u) * (len + 1)));
 
 	    if (str_to) {
 		str_to[len] = '\0';
@@ -1370,13 +1371,13 @@
     char_u *str;
     PerlIOVim * s = PerlIOSelf(f, PerlIOVim);
 
-    str = vim_strnsave((char_u *)vbuf, count);
+    str = vim_strnsave((char_u *)vbuf, (int)count);
     if (str == NULL)
 	return 0;
     msg_split((char_u *)str, s->attr);
     vim_free(str);
 
-    return count;
+    return (SSize_t)count;
 }
 
 static PERLIO_FUNCS_DECL(PerlIO_Vim) = {
diff --git a/src/if_ruby.c b/src/if_ruby.c
index 80ffa49..90e814e 100644
--- a/src/if_ruby.c
+++ b/src/if_ruby.c
@@ -733,7 +733,7 @@
 	vim_free(sval);
 	if (enc)
 	{
-	    return rb_enc_str_new(s, strlen(s), enc);
+	    return rb_enc_str_new(s, (long)strlen(s), enc);
 	}
     }
 #endif
diff --git a/src/version.c b/src/version.c
index 279ee6d..0d234a5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1863,
+/**/
     1862,
 /**/
     1861,
@@ -5077,7 +5079,7 @@
     if (*mesg == ' ')
     {
 	vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1);
-	l = STRLEN(modby);
+	l = (int)STRLEN(modby);
 	vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1);
 	mesg = modby;
     }
