diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 0bb4b83..370d64b 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*	For Vim version 7.4.  Last change: 2016 Mar 08
+*eval.txt*	For Vim version 7.4.  Last change: 2016 Mar 12
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -113,16 +113,8 @@
 			*E891* *E892* *E893* *E894* *E907* *E911* *E914*
 When expecting a Float a Number can also be used, but nothing else.
 
-						*E706* *sticky-type-checking*
-You will get an error if you try to change the type of a variable.  You need
-to |:unlet| it first to avoid this error.  String and Number are considered
-equivalent though, as well are Float and Number.  Consider this sequence of
-commands: >
-	:let l = "string"
-	:let l = 44		" changes type from String to Number
-	:let l = [1, 2, 3]	" error!  l is still a Number
-	:let l = 4.4		" changes type from Number to Float
-	:let l = "string"	" error!
+						*no-type-checking*
+You will not get an error if you try to change the type of a variable.
 
 
 1.2 Function references ~
@@ -1969,6 +1961,7 @@
 isnan( {expr})			Number  TRUE if {expr} is NaN
 items( {dict})			List	key-value pairs in {dict}
 job_getchannel( {job})		Channel	get the channel handle for {job}
+job_info( {job})		Dict	get information about {job}
 job_setoptions( {job}, {options}) none	set options for {job}
 job_start( {command} [, {options}]) Job	 start a job
 job_status( {job})		String	get the status of {job}
@@ -4473,10 +4466,18 @@
 <
 		{only available when compiled with the |+job| feature}
 
+job_info({job})						*job_info()*
+		Returns a Dictionary with information about {job}:
+		   "status"	what |job_status()| returns
+		   "channel"	what |job_getchannel()| returns
+		   "exitval"	only valid when "status" is "dead"
+		   "exit-cb"	function to be called on exit
+		   "stoponexit"	|job-stoponexit|
+
 job_setoptions({job}, {options})			*job_setoptions()*
 		Change options for {job}.  Supported are:
-			"stoponexit"	|job-stoponexit|
-			"exit-cb"	|job-exit-cb|
+		   "stoponexit"	|job-stoponexit|
+		   "exit-cb"	|job-exit-cb|
 
 job_start({command} [, {options}])			*job_start()*
 		Start a job and return a Job object.  Unlike |system()| and
diff --git a/src/eval.c b/src/eval.c
index f4843e2..765d9b9 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -22091,22 +22091,6 @@
 	if (var_check_ro(v->di_flags, name, FALSE)
 			       || tv_check_lock(v->di_tv.v_lock, name, FALSE))
 	    return;
-	if (v->di_tv.v_type != tv->v_type
-		&& !((v->di_tv.v_type == VAR_STRING
-			|| v->di_tv.v_type == VAR_NUMBER)
-		    && (tv->v_type == VAR_STRING
-			|| tv->v_type == VAR_NUMBER))
-#ifdef FEAT_FLOAT
-		&& !((v->di_tv.v_type == VAR_NUMBER
-			|| v->di_tv.v_type == VAR_FLOAT)
-		    && (tv->v_type == VAR_NUMBER
-			|| tv->v_type == VAR_FLOAT))
-#endif
-		)
-	{
-	    EMSG2(_("E706: Variable type mismatch for: %s"), name);
-	    return;
-	}
 
 	/*
 	 * Handle setting internal v: variables separately where needed to
diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim
index 46be515..6071756 100644
--- a/src/testdir/test_alot.vim
+++ b/src/testdir/test_alot.vim
@@ -1,6 +1,7 @@
 " A series of tests that can run in one Vim invocation.
 " This makes testing go faster, since Vim doesn't need to restart.
 
+source test_assign.vim
 source test_backspace_opt.vim
 source test_cursor_func.vim
 source test_delete.vim
diff --git a/src/testdir/test_assign.vim b/src/testdir/test_assign.vim
new file mode 100644
index 0000000..c1f036a
--- /dev/null
+++ b/src/testdir/test_assign.vim
@@ -0,0 +1,9 @@
+" Test for assignment
+
+func Test_no_type_checking()
+  let v = 1
+  let v = [1,2,3]
+  let v = {'a': 1, 'b': 2}
+  let v = 3.4
+  let v = 'hello'
+endfunc
diff --git a/src/version.c b/src/version.c
index 0652ab8..fc9cebe 100644
--- a/src/version.c
+++ b/src/version.c
@@ -744,6 +744,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1546,
+/**/
     1545,
 /**/
     1544,
