updated for version 7.1-283
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 193796f..71a7b1b 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3009,7 +3009,7 @@
 		break;
 	if (!isalpha(p[j]) && j >= cmdmods[i].minlen
 					&& (p == cmd || cmdmods[i].has_count))
-	    return j + (p - cmd);
+	    return j + (int)(p - cmd);
     }
     return 0;
 }
diff --git a/src/globals.h b/src/globals.h
index a77f14b..469801b 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1263,7 +1263,7 @@
  * The value of the --windowid argument.
  * For embedding gvim inside another application.
  */
-EXTERN int	win_socket_id INIT(= 0);
+EXTERN long_u	win_socket_id INIT(= 0);
 #endif
 
 #if defined(FEAT_CLIENTSERVER) || defined(FEAT_EVAL)
diff --git a/src/if_cscope.c b/src/if_cscope.c
index e76b58d..b2d39cf 100644
--- a/src/if_cscope.c
+++ b/src/if_cscope.c
@@ -1400,7 +1400,7 @@
 	return NULL;
 
     /* Store length of eap->arg before it gets modified by strtok(). */
-    eap_arg_len = STRLEN(eap->arg);
+    eap_arg_len = (int)STRLEN(eap->arg);
 
     if ((stok = strtok((char *)(eap->arg), (const char *)" ")) == NULL)
 	return NULL;
diff --git a/src/main.c b/src/main.c
index 07390a9..2a02615 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1552,15 +1552,15 @@
 	else if (STRICMP(argv[i], "--socketid") == 0)
 #  endif
 	{
-	    unsigned int    id;
-	    int		    count;
+	    long_u	id;
+	    int		count;
 
 	    if (i == argc - 1)
 		mainerr_arg_missing((char_u *)argv[i]);
 	    if (STRNICMP(argv[i+1], "0x", 2) == 0)
-		count = sscanf(&(argv[i + 1][2]), "%x", &id);
+		count = sscanf(&(argv[i + 1][2]), SCANF_HEX_LONG_U, &id);
 	    else
-		count = sscanf(argv[i+1], "%u", &id);
+		count = sscanf(argv[i + 1], SCANF_DECIMAL_LONG_U, &id);
 	    if (count != 1)
 		mainerr(ME_INVALID_ARG, (char_u *)argv[i]);
 	    else
diff --git a/src/mark.c b/src/mark.c
index 2accbba..7428969 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -522,7 +522,7 @@
 	    int len;
 
 	    expand_env((char_u *)"~/", NameBuff, MAXPATHL);
-	    len = STRLEN(NameBuff);
+	    len = (int)STRLEN(NameBuff);
 	    vim_strncpy(NameBuff + len, fm->fname + 2, MAXPATHL - len - 1);
 	}
 	else
diff --git a/src/netbeans.c b/src/netbeans.c
index e3e3200..ed415a5 100644
--- a/src/netbeans.c
+++ b/src/netbeans.c
@@ -1216,7 +1216,7 @@
     int lastbyte = last;
 
     oldtext = ml_get(lnum);
-    oldlen = STRLEN(oldtext);
+    oldlen = (int)STRLEN(oldtext);
     if (first >= (colnr_T)oldlen || oldlen == 0)  /* just in case */
 	return;
     if (lastbyte >= oldlen)
@@ -1241,8 +1241,8 @@
     int len_first, len_other;
     char_u *p;
 
-    len_first = STRLEN(ml_get(first));
-    len_other = STRLEN(ml_get(other));
+    len_first = (int)STRLEN(ml_get(first));
+    len_other = (int)STRLEN(ml_get(other));
     p = alloc((unsigned)(len_first + len_other + 1));
     if (p != NULL)
     {
diff --git a/src/popupmnu.c b/src/popupmnu.c
index 4dd3a94..1d747a6 100644
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -337,7 +337,7 @@
 
 				if (rt != NULL)
 				{
-				    len = STRLEN(rt);
+				    len = (int)STRLEN(rt);
 				    if (len > pum_width)
 				    {
 					for (j = pum_width; j < len; ++j)
diff --git a/src/version.c b/src/version.c
index 9e73bb9..b811919 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    283,
+/**/
     282,
 /**/
     281,
diff --git a/src/vim.h b/src/vim.h
index 6c2cde5..d93bec1 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -355,16 +355,19 @@
  * On Win64 longs are 32 bit and pointers 64 bit.
  * For printf() and scanf() we need to take care of long_u specifically. */
 #ifdef _WIN64
-typedef unsigned __int64 long_u;
-typedef		 __int64 long_i;
-# define SCANF_HEX_LONG_U  "%Ix"
-# define PRINTF_HEX_LONG_U "0x%Ix"
+typedef unsigned __int64        long_u;
+typedef		 __int64        long_i;
+# define SCANF_HEX_LONG_U       "%Ix"
+# define SCANF_DECIMAL_LONG_U   "%Iu"
+# define PRINTF_HEX_LONG_U      "0x%Ix"
 #else
-typedef unsigned long	long_u;
-typedef		 long	long_i;
-# define SCANF_HEX_LONG_U  "%lx"
-# define PRINTF_HEX_LONG_U "0x%lx"
+typedef unsigned long	        long_u;
+typedef		 long	        long_i;
+# define SCANF_HEX_LONG_U       "%lx"
+# define SCANF_DECIMAL_LONG_U   "%lu"
+# define PRINTF_HEX_LONG_U      "0x%lx"
 #endif
+#define PRINTF_DECIMAL_LONG_U SCANF_DECIMAL_LONG_U
 
 /*
  * The characters and attributes cached for the screen.
diff --git a/src/window.c b/src/window.c
index 74e3646..584b9a4 100644
--- a/src/window.c
+++ b/src/window.c
@@ -6303,7 +6303,7 @@
 	    cur = cur->next;
 	}
     }
-    if ((hlg_id = syn_namen2id(grp, STRLEN(grp))) == 0)
+    if ((hlg_id = syn_namen2id(grp, (int)STRLEN(grp))) == 0)
     {
 	EMSG2(_(e_nogroup), grp);
 	return -1;