diff --git a/src/cindent.c b/src/cindent.c
index a9b813f..6289422 100644
--- a/src/cindent.c
+++ b/src/cindent.c
@@ -1730,7 +1730,7 @@
     char_u	*p;
     char_u	*l;
     char_u	*digits;
-    long long	n;
+    vimlong_T	n;
     int		divider;
     int		fraction = 0;
     int		sw;
@@ -1902,7 +1902,7 @@
 	    {
 		n *= sw;
 		if (divider)
-		    n += ((long long)sw * fraction + divider / 2) / divider;
+		    n += ((vimlong_T)sw * fraction + divider / 2) / divider;
 	    }
 	    ++p;
 	}
diff --git a/src/misc1.c b/src/misc1.c
index e83ec66..bf70e38 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -2843,7 +2843,7 @@
 
 // Return something that fits into an int.
     int
-trim_to_int(long long x)
+trim_to_int(vimlong_T x)
 {
     return x > INT_MAX ? INT_MAX : x < INT_MIN ? INT_MIN : x;
 }
diff --git a/src/ops.c b/src/ops.c
index e30fea7..46101a4 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -229,11 +229,11 @@
     int	amount,
     int call_changed_bytes)	// call changed_bytes()
 {
-    long long	count;
+    vimlong_T	count;
     int		i, j;
     int		sw_val = trim_to_int(get_sw_value_indent(curbuf));
 
-    count = (long long)get_indent();	// get current indent
+    count = get_indent();	// get current indent
 
     if (round)			// round off indent
     {
@@ -249,18 +249,18 @@
 	}
 	else
 	    i += amount;
-	count = (long long)i * (long long)sw_val;
+	count = (vimlong_T)i * (vimlong_T)sw_val;
     }
     else		// original vi indent
     {
 	if (left)
 	{
-	    count -= (long long)sw_val * (long long)amount;
+	    count -= (vimlong_T)sw_val * (vimlong_T)amount;
 	    if (count < 0)
 		count = 0;
 	}
 	else
-	    count += (long long)sw_val * (long long)amount;
+	    count += (vimlong_T)sw_val * (vimlong_T)amount;
     }
 
     // Set new indent
diff --git a/src/proto/misc1.pro b/src/proto/misc1.pro
index c602b0e..e76bf75 100644
--- a/src/proto/misc1.pro
+++ b/src/proto/misc1.pro
@@ -55,5 +55,5 @@
 void may_trigger_modechanged(void);
 int vim_append_digit_int(int *value, int digit);
 int vim_append_digit_long(long *value, int digit);
-int trim_to_int(long long x);
+int trim_to_int(vimlong_T x);
 /* vim: set ft=c : */
diff --git a/src/version.c b/src/version.c
index 1476f98..81128a3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2138,
+/**/
     2137,
 /**/
     2136,
diff --git a/src/vim.h b/src/vim.h
index 6fb8978..7d0d128 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -435,6 +435,12 @@
  */
 typedef unsigned int u8char_T;	// int is 32 bits or more
 
+/*
+ * The vimlong_T has sizeof(vimlong_T) >= 2 * sizeof(int).
+ * One use is simple handling of overflow in int calculations.
+ */
+typedef long long vimlong_T;
+
 #ifndef UNIX		    // For Unix this is included in os_unix.h
 # include <stdio.h>
 # include <ctype.h>
