diff --git a/manual/luatex-enhancements.tex b/manual/luatex-enhancements.tex
index 9557f615b56f8a8ec2b898c27dc446120b294ca2..775d11999d647ad336dddad3dd5f4b4bba0678d7 100644
--- a/manual/luatex-enhancements.tex
+++ b/manual/luatex-enhancements.tex
@@ -550,6 +550,16 @@ $ x + 1 =
 a $
 \stoptyping
 
+\subsection{\type {\suppressprimitiveerror}}
+
+When set to a non|-|zero value the following command will not issue an error:
+
+\starttyping
+\suppressprimitiveerror = 1
+
+\primitive\notaprimitive
+\stoptyping
+
 \section {Math}
 
 \subsection{Extensions}
diff --git a/manual/luatex.pdf b/manual/luatex.pdf
index 6463861f6ed03d9c283341bfd40cdc61bf46d24d..252452c6751233718cbb1f5f4b9c1588bfe2d45b 100644
Binary files a/manual/luatex.pdf and b/manual/luatex.pdf differ
diff --git a/source/texk/web2c/luatexdir/luatex_svnversion.h b/source/texk/web2c/luatexdir/luatex_svnversion.h
index edce874e6108f3068b17f929c146739525d537f6..c1c1ad85241d4c4b3985bb046ff9e1a950f118f5 100644
--- a/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1 +1 @@
-#define luatex_svn_revision 6471
+#define luatex_svn_revision 6473
diff --git a/source/texk/web2c/luatexdir/tex/commands.w b/source/texk/web2c/luatexdir/tex/commands.w
index 6af7a48c75c2db05fdfc829deaaf19daf427e049..0a34b750116732f876c73c51ec5f045ef5dd7828 100644
--- a/source/texk/web2c/luatexdir/tex/commands.w
+++ b/source/texk/web2c/luatexdir/tex/commands.w
@@ -762,6 +762,7 @@ void initialize_etex_commands(void)
     primitive_etex("savinghyphcodes", assign_int_cmd, int_base + saving_hyph_codes_code, int_base);
     primitive_luatex("suppressfontnotfounderror", assign_int_cmd, int_base + suppress_fontnotfound_error_code, int_base);
     primitive_luatex("suppresslongerror", assign_int_cmd, int_base + suppress_long_error_code, int_base);
+    primitive_luatex("suppressprimitiveerror", assign_int_cmd, int_base + suppress_primitive_error_code, int_base);
     primitive_luatex("suppressmathparerror", assign_int_cmd, int_base + suppress_mathpar_error_code, int_base);
     primitive_luatex("suppressifcsnameerror", assign_int_cmd, int_base + suppress_ifcsname_error_code, int_base);
     primitive_luatex("suppressoutererror", assign_int_cmd, int_base + suppress_outer_error_code, int_base);
diff --git a/source/texk/web2c/luatexdir/tex/dumpdata.w b/source/texk/web2c/luatexdir/tex/dumpdata.w
index 0517092a4de9f9f80f7fab6f9c922b0d74854065..9d06f1c8ed4443566215dbb9c716ebf56f547569 100644
--- a/source/texk/web2c/luatexdir/tex/dumpdata.w
+++ b/source/texk/web2c/luatexdir/tex/dumpdata.w
@@ -23,7 +23,7 @@
 
 /* we start with 907: the sum of the values of the bytes of "don knuth" */
 
-#define FORMAT_ID (907+36)
+#define FORMAT_ID (907+37)
 #if ((FORMAT_ID>=0) && (FORMAT_ID<=256))
 #error Wrong value for FORMAT_ID.
 #endif
diff --git a/source/texk/web2c/luatexdir/tex/equivalents.h b/source/texk/web2c/luatexdir/tex/equivalents.h
index e0c7ea9296c28b2f1e1e0ee64ee27c3e1d11bea7..f478b4a41b28830a007ea0a4318323d82602d45a 100644
--- a/source/texk/web2c/luatexdir/tex/equivalents.h
+++ b/source/texk/web2c/luatexdir/tex/equivalents.h
@@ -300,7 +300,9 @@ the |number_regs| \.{\\dimen} registers.
 #  define math_delimiters_mode_code 108
 #  define math_script_box_mode_code 109
 
-#  define math_option_code (math_script_box_mode_code+1)
+#  define suppress_primitive_error_code 110
+
+#  define math_option_code (suppress_primitive_error_code+1)
 
 #  define mathoption_int_base_code (math_option_code+1)                 /* one reserve */
 #  define mathoption_int_last_code (mathoption_int_base_code+8)
@@ -753,6 +755,7 @@ extern halfword last_cs_name;
 #define suppress_mathpar_error_par         int_par(suppress_mathpar_error_code)
 #define suppress_fontnotfound_error_par    int_par(suppress_fontnotfound_error_code)
 #define suppress_ifcsname_error_par        int_par(suppress_ifcsname_error_code)
+#define suppress_primitive_error_par       int_par(suppress_primitive_error_code)
 #define error_context_lines_par            int_par(error_context_lines_code)
 
 #define math_old_par                       mathoption_int_par(c_mathoption_old_code)
diff --git a/source/texk/web2c/luatexdir/tex/expand.w b/source/texk/web2c/luatexdir/tex/expand.w
index 731345eb66e27d56028699f506c1b7ce3658eca1..c912863b2a177ae00f657a5d94665f7ead27f125 100644
--- a/source/texk/web2c/luatexdir/tex/expand.w
+++ b/source/texk/web2c/luatexdir/tex/expand.w
@@ -209,7 +209,7 @@ void expand(void)
                         iloc = p;
                         istart = p;
                     }
-                } else {
+                } else if (suppress_primitive_error_par == 0) {
                     print_err("Missing primitive name");
                     help2
                         ("The control sequence marked <to be read again> does not",