diff --git a/src/buffer.c b/src/buffer.c
index 33a7c66..b9b4488 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5493,6 +5493,7 @@
 		current_sctx.sc_sid = SID_MODELINE;
 		current_sctx.sc_seq = 0;
 		current_sctx.sc_lnum = 0;
+		current_sctx.sc_version = 1;
 #endif
 		// Make sure no risky things are executed as a side effect.
 		secure = 1;
diff --git a/src/eval.c b/src/eval.c
index 78e2c60..9e93dcf 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1249,6 +1249,7 @@
     char_u	op[2];
     char_u	*argend;
     int		first = TRUE;
+    int		concat;
 
     argend = skip_var_list(arg, &var_count, &semicolon);
     if (argend == NULL)
@@ -1256,14 +1257,19 @@
     if (argend > arg && argend[-1] == '.')  // for var.='str'
 	--argend;
     expr = skipwhite(argend);
-    if (*expr != '=' && !((vim_strchr((char_u *)"+-*/%.", *expr) != NULL
-			   && expr[1] == '=') || STRNCMP(expr, "..=", 3) == 0))
+    concat = expr[0] == '.'
+	&& ((expr[1] == '=' && current_sctx.sc_version < 2)
+		|| (expr[1] == '.' && expr[2] == '='));
+    if (*expr != '=' && !((vim_strchr((char_u *)"+-*/%", *expr) != NULL
+						 && expr[1] == '=') || concat))
     {
 	/*
 	 * ":let" without "=": list variables
 	 */
 	if (*arg == '[')
 	    emsg(_(e_invarg));
+	else if (expr[0] == '.')
+	    emsg(_("E985: .= is not supported with script version 2"));
 	else if (!ends_excmd(*arg))
 	    /* ":let var1 var2" */
 	    arg = list_arg_vars(eap, arg, &first);
@@ -3817,7 +3823,7 @@
  * Handle fourth level expression:
  *	+	number addition
  *	-	number subtraction
- *	.	string concatenation
+ *	.	string concatenation (if script version is 1)
  *	..	string concatenation
  *
  * "arg" must point to the first non-white of the expression.
@@ -3838,6 +3844,7 @@
     char_u	*s1, *s2;
     char_u	buf1[NUMBUFLEN], buf2[NUMBUFLEN];
     char_u	*p;
+    int		concat;
 
     /*
      * Get the first variable.
@@ -3850,8 +3857,11 @@
      */
     for (;;)
     {
+	// "." is only string concatenation when scriptversion is 1
 	op = **arg;
-	if (op != '+' && op != '-' && op != '.')
+	concat = op == '.'
+			&& (*(*arg + 1) == '.' || current_sctx.sc_version < 2);
+	if (op != '+' && op != '-' && !concat)
 	    break;
 
 	if ((op != '+' || (rettv->v_type != VAR_LIST
@@ -4224,6 +4234,17 @@
 	*arg = skipwhite(*arg + 1);
     end_leader = *arg;
 
+    if (**arg == '.' && (!isdigit(*(*arg + 1))
+#ifdef FEAT_FLOAT
+	    || current_sctx.sc_version < 2
+#endif
+	    ))
+    {
+	semsg(_(e_invexpr2), *arg);
+	++*arg;
+	return FAIL;
+    }
+
     switch (**arg)
     {
     /*
@@ -4239,16 +4260,23 @@
     case '7':
     case '8':
     case '9':
+    case '.':
 	{
 #ifdef FEAT_FLOAT
-		char_u *p = skipdigits(*arg + 1);
+		char_u *p;
 		int    get_float = FALSE;
 
 		/* We accept a float when the format matches
 		 * "[0-9]\+\.[0-9]\+\([eE][+-]\?[0-9]\+\)\?".  This is very
 		 * strict to avoid backwards compatibility problems.
+		 * With script version 2 and later the leading digit can be
+		 * omitted.
 		 * Don't look for a float after the "." operator, so that
 		 * ":let vers = 1.2.3" doesn't fail. */
+		if (**arg == '.')
+		    p = *arg;
+		else
+		    p = skipdigits(*arg + 1);
 		if (!want_string && p[0] == '.' && vim_isdigit(p[1]))
 		{
 		    get_float = TRUE;
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 4a54d6d..ea2ec3c 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -6631,10 +6631,12 @@
 #ifdef FEAT_VARTABS
 	"vartabs",
 #endif
+	"vertsplit",
 #ifdef FEAT_VIMINFO
 	"viminfo",
 #endif
-	"vertsplit",
+	"vimscript-1",
+	"vimscript-2",
 	"virtualedit",
 	"visual",
 	"visualextra",
diff --git a/src/ex_cmdidxs.h b/src/ex_cmdidxs.h
index 867047f..feea5b2 100644
--- a/src/ex_cmdidxs.h
+++ b/src/ex_cmdidxs.h
@@ -24,13 +24,13 @@
   /* q */ 348,
   /* r */ 351,
   /* s */ 371,
-  /* t */ 438,
-  /* u */ 481,
-  /* v */ 492,
-  /* w */ 510,
-  /* x */ 524,
-  /* y */ 533,
-  /* z */ 534
+  /* t */ 439,
+  /* u */ 482,
+  /* v */ 493,
+  /* w */ 511,
+  /* x */ 525,
+  /* y */ 534,
+  /* z */ 535
 };
 
 /*
@@ -59,7 +59,7 @@
   /* p */ {  1,  0,  3,  0,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,  9,  0,  0, 16, 17, 26,  0, 27,  0, 28,  0 },
   /* q */ {  2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 },
   /* r */ {  0,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 14, 19,  0,  0,  0,  0 },
-  /* s */ {  2,  6, 15,  0, 18, 22,  0, 24, 25,  0,  0, 28, 30, 34, 38, 40,  0, 48,  0, 49,  0, 61, 62,  0, 63,  0 },
+  /* s */ {  2,  6, 15,  0, 19, 23,  0, 25, 26,  0,  0, 29, 31, 35, 39, 41,  0, 49,  0, 50,  0, 62, 63,  0, 64,  0 },
   /* t */ {  2,  0, 19,  0, 22, 24,  0, 25,  0, 26,  0, 27, 31, 34, 36, 37,  0, 38, 40,  0, 41,  0,  0,  0,  0,  0 },
   /* u */ {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 },
   /* v */ {  0,  0,  0,  0,  1,  0,  0,  0,  4,  0,  0,  0,  9, 12,  0,  0,  0,  0, 15,  0, 16,  0,  0,  0,  0,  0 },
@@ -69,4 +69,4 @@
   /* z */ {  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 }
 };
 
-static const int command_count = 547;
+static const int command_count = 548;
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index eed4ce2..c080cbe 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -1269,6 +1269,9 @@
 EX(CMD_scriptencoding,	"scriptencoding", ex_scriptencoding,
 			WORD1|TRLBAR|CMDWIN,
 			ADDR_LINES),
+EX(CMD_scriptversion,	"scriptversion", ex_scriptversion,
+			WORD1|TRLBAR|CMDWIN,
+			ADDR_LINES),
 EX(CMD_scscope,		"scscope",	ex_scscope,
 			EXTRA|NOTRLCOM,
 			ADDR_LINES),
diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c
index a8040a7..97bf143 100644
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -2321,7 +2321,7 @@
 	    else
 #endif
 	    /* Try auto-writing the buffer.  If this fails but the buffer no
-	    * longer exists it's not changed, that's OK. */
+	     * longer exists it's not changed, that's OK. */
 	    if (check_changed(buf, (p_awa ? CCGD_AW : 0)
 				 | CCGD_MULTWIN
 				 | CCGD_ALLBUF) && bufref_valid(&bufref))
@@ -4501,12 +4501,14 @@
      * Also starts profiling timer for nested script. */
     save_funccal(&funccalp_entry);
 
+    save_current_sctx = current_sctx;
+    current_sctx.sc_lnum = 0;
+    current_sctx.sc_version = 1;
+
     // Check if this script was sourced before to finds its SID.
     // If it's new, generate a new SID.
     // Always use a new sequence number.
-    save_current_sctx = current_sctx;
     current_sctx.sc_seq = ++last_current_SID_seq;
-    current_sctx.sc_lnum = 0;
 # ifdef UNIX
     stat_ok = (mch_stat((char *)fname_exp, &st) >= 0);
 # endif
@@ -5077,10 +5079,9 @@
 
 /*
  * ":scriptencoding": Set encoding conversion for a sourced script.
- * Without the multi-byte feature it's simply ignored.
  */
     void
-ex_scriptencoding(exarg_T *eap UNUSED)
+ex_scriptencoding(exarg_T *eap)
 {
     struct source_cookie	*sp;
     char_u			*name;
@@ -5108,6 +5109,29 @@
 	vim_free(name);
 }
 
+/*
+ * ":scriptversion": Set Vim script version for a sourced script.
+ */
+    void
+ex_scriptversion(exarg_T *eap UNUSED)
+{
+    int		nr;
+
+    if (!getline_equal(eap->getline, eap->cookie, getsourceline))
+    {
+	emsg(_("E984: :scriptversion used outside of a sourced file"));
+	return;
+    }
+
+    nr = getdigits(&eap->arg);
+    if (nr == 0 || *eap->arg != NUL)
+	emsg(_(e_invarg));
+    else if (nr > 2)
+	semsg(_("E999: scriptversion not supported: %d"), nr);
+    else
+	current_sctx.sc_version = nr;
+}
+
 #if defined(FEAT_EVAL) || defined(PROTO)
 /*
  * ":finish": Mark a sourced file as finished.
diff --git a/src/main.c b/src/main.c
index a07ce1b..5edcbdf 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3166,6 +3166,7 @@
 	current_sctx.sc_sid = SID_ENV;
 	current_sctx.sc_seq = 0;
 	current_sctx.sc_lnum = 0;
+	current_sctx.sc_version = 1;
 #endif
 	do_cmdline_cmd(initstr);
 	sourcing_name = save_sourcing_name;
diff --git a/src/option.c b/src/option.c
index d1fdcc1..4564395 100644
--- a/src/option.c
+++ b/src/option.c
@@ -407,7 +407,7 @@
     char_u	*def_val[2];	// default values for variable (vi and vim)
 #ifdef FEAT_EVAL
     sctx_T	script_ctx;	// script context where the option was last set
-# define SCTX_INIT , {0, 0, 0}
+# define SCTX_INIT , {0, 0, 0, 1}
 #else
 # define SCTX_INIT
 #endif
@@ -5911,6 +5911,7 @@
 		script_ctx.sc_sid = set_sid;
 		script_ctx.sc_seq = 0;
 		script_ctx.sc_lnum = 0;
+		script_ctx.sc_version = 1;
 	    }
 	    set_option_sctx_idx(idx, opt_flags, script_ctx);
 	}
diff --git a/src/proto/ex_cmds2.pro b/src/proto/ex_cmds2.pro
index 01d20db..29bdf6a 100644
--- a/src/proto/ex_cmds2.pro
+++ b/src/proto/ex_cmds2.pro
@@ -98,6 +98,7 @@
 void script_line_exec(void);
 void script_line_end(void);
 void ex_scriptencoding(exarg_T *eap);
+void ex_scriptversion(exarg_T *eap);
 void ex_finish(exarg_T *eap);
 void do_finish(exarg_T *eap, int reanimate);
 int source_finished(char_u *(*fgetline)(int, void *, int), void *cookie);
diff --git a/src/structs.h b/src/structs.h
index c81960b..f2f2cc9 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -79,6 +79,7 @@
     scid_T	sc_sid;		// script ID
     int		sc_seq;		// sourcing sequence number
     linenr_T	sc_lnum;	// line number
+    int		sc_version;	// :scriptversion
 } sctx_T;
 
 /*
diff --git a/src/testdir/test_eval_stuff.vim b/src/testdir/test_eval_stuff.vim
index 6d61ce9..d6aeb6f 100644
--- a/src/testdir/test_eval_stuff.vim
+++ b/src/testdir/test_eval_stuff.vim
@@ -123,3 +123,39 @@
   let a..=b
   call assert_equal('ab', a)
 endfunc
+
+scriptversion 2
+func Test_string_concat_scriptversion2()
+  let a = 'a'
+  let b = 'b'
+
+  call assert_fails('echo a . b', 'E15:')
+  call assert_fails('let a .= b', 'E985:')
+  call assert_fails('let vers = 1.2.3', 'E15:')
+
+  if has('float')
+    let f = .5
+    call assert_equal(0.5, f)
+  endif
+endfunc
+
+scriptversion 1
+func Test_string_concat_scriptversion1()
+  let a = 'a'
+  let b = 'b'
+
+  echo a . b
+  let a .= b
+  let vers = 1.2.3
+  call assert_equal('123', vers)
+
+  if has('float')
+    call assert_fails('let f = .5', 'E15:')
+  endif
+endfunc
+
+func Test_scriptversion()
+  call writefile(['scriptversion 9'], 'Xversionscript')
+  call assert_fails('source Xversionscript', 'E999:')
+  call delete('Xversionscript')
+endfunc
diff --git a/src/version.c b/src/version.c
index 9f65ca6..aa069d6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1116,
+/**/
     1115,
 /**/
     1114,
