diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 5e0be58..ebd21ae 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -3099,6 +3099,11 @@
 			if coming from a mapping.  This matters for undo,
 			opening folds, etc.
 		'i'	Insert the string instead of appending (see above).
+		'x'	Execute commands until typeahead is empty.  This is
+			similar to using ":normal!".  You can call feedkeys()
+			several times without 'x' and then one time with 'x'
+			(possibly with an empty {string}) to execute all the
+			typeahead.
 		Return value is always 0.
 
 filereadable({file})					*filereadable()*
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 837d135..5c61679 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -10226,17 +10226,26 @@
     int		remap;
     int		silent;
 {
+    /* Stuff the argument into the typeahead buffer. */
+    ins_typebuf(cmd, remap, 0, TRUE, silent);
+    exec_normal(FALSE);
+}
+#endif
+
+#if defined(FEAT_EX_EXTRA) || defined(FEAT_MENU) || defined(FEAT_EVAL) \
+	|| defined(PROTO)
+/*
+ * Execute normal_cmd() until there is no typeahead left.
+ */
+    void
+exec_normal(int was_typed)
+{
     oparg_T	oa;
 
-    /*
-     * Stuff the argument into the typeahead buffer.
-     * Execute normal_cmd() until there is no typeahead left.
-     */
     clear_oparg(&oa);
     finish_op = FALSE;
-    ins_typebuf(cmd, remap, 0, TRUE, silent);
-    while ((!stuff_empty() || (!typebuf_typed() && typebuf.tb_len > 0))
-								  && !got_int)
+    while ((!stuff_empty() || ((was_typed || !typebuf_typed())
+		    && typebuf.tb_len > 0)) && !got_int)
     {
 	update_topline_cursor();
 	normal_cmd(&oa, TRUE);	/* execute a Normal mode cmd */
diff --git a/src/getchar.c b/src/getchar.c
index 70829e1..5b5eab3 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2149,7 +2149,8 @@
 			else
 			{
 			    LANGMAP_ADJUST(c1,
-					   (State & (CMDLINE | INSERT)) == 0);
+					   (State & (CMDLINE | INSERT)) == 0
+					   && get_real_state() != SELECTMODE);
 			    nolmaplen = 0;
 			}
 #endif
diff --git a/src/normal.c b/src/normal.c
index ac1a391..17cb8d6 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -638,7 +638,7 @@
      * Get the command character from the user.
      */
     c = safe_vgetc();
-    LANGMAP_ADJUST(c, TRUE);
+    LANGMAP_ADJUST(c, get_real_state() != SELECTMODE);
 
     /*
      * If a mapping was started in Visual or Select mode, remember the length
diff --git a/src/proto/ex_docmd.pro b/src/proto/ex_docmd.pro
index f4d4347..15e5fc5 100644
--- a/src/proto/ex_docmd.pro
+++ b/src/proto/ex_docmd.pro
@@ -50,6 +50,7 @@
 FILE *open_exfile(char_u *fname, int forceit, char *mode);
 void update_topline_cursor(void);
 void exec_normal_cmd(char_u *cmd, int remap, int silent);
+void exec_normal(int was_typed);
 int find_cmdline_var(char_u *src, int *usedlen);
 char_u *eval_vars(char_u *src, char_u *srcstart, int *usedlen, linenr_T *lnump, char_u **errormsg, int *escaped);
 char_u *expand_sfile(char_u *arg);
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index d02e8d2..d7a06ee 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -173,6 +173,7 @@
 	    test_cdo.res \
 	    test_hardcopy.res \
 	    test_increment.res \
+	    test_langmap.res \
 	    test_perl.res \
 	    test_quickfix.res \
 	    test_syntax.res \
diff --git a/src/testdir/test_langmap.vim b/src/testdir/test_langmap.vim
new file mode 100644
index 0000000..066c3bf
--- /dev/null
+++ b/src/testdir/test_langmap.vim
@@ -0,0 +1,24 @@
+" tests for 'langmap'
+
+func Test_langmap()
+  new
+  set langmap=}l,^x,%v
+
+  call setline(1, ['abc'])
+  call feedkeys('gg0}^', 'tx')
+  call assert_equal('ac', getline(1))
+
+  " in Replace mode
+  " need silent! to avoid a delay when entering Insert mode
+  call setline(1, ['abcde'])
+  silent! call feedkeys("gg0lR%{z\<Esc>00", 'tx')
+  call assert_equal('a%{ze', getline(1))
+
+  " in Select mode
+  " need silent! to avoid a delay when entering Insert mode
+  call setline(1, ['abcde'])
+  silent! call feedkeys("gg0}%}\<C-G>}^\<Esc>00", 'tx')
+  call assert_equal('a}^de', getline(1))
+
+  quit!
+endfunc
diff --git a/src/version.c b/src/version.c
index 96e0105..6aee23d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1150,
+/**/
     1149,
 /**/
     1148,
