diff --git a/manual/luatex-libraries.tex b/manual/luatex-libraries.tex
index c1f8dac33c5a84e68c0c364d5c11ebc6694e3ddf..ff3a78a7a053d972159d4d37289b83be116d83fd 100644
--- a/manual/luatex-libraries.tex
+++ b/manual/luatex-libraries.tex
@@ -2669,6 +2669,12 @@ Once the image is scanned, all the values in the \type {<image>} except \type
 {width}, \type {height} and \type {depth}, become frozen, and you cannot change
 them any more.
 
+You can use \type {pdf.setignoreunknownimages(1)} (or at the \TEX\ end the \type
+{\pdfvariable} \type {ignoreunknownimages}) to get around a quit when no known
+image type is found (based on name or preamble). Beware: this will not catch
+invalid images and we cannot guarantee side effects. A zero dimension image is
+still included when requested. No special flags are set.
+
 \subsection{\type {img.keys}}
 
 \startfunctioncall
diff --git a/manual/luatex-modifications.tex b/manual/luatex-modifications.tex
index afc6318082c214ecc97b4175a76c28a100d95f51..d4616f7834956e5beb15f4edeef05aa75bd39b06 100644
--- a/manual/luatex-modifications.tex
+++ b/manual/luatex-modifications.tex
@@ -543,6 +543,7 @@ The configuration related registers have become:
 \edef\pdfpkresolution             {\pdfvariable pkresolution}
 \edef\pdfinclusioncopyfonts       {\pdfvariable inclusioncopyfonts}
 \edef\pdfinclusionerrorlevel      {\pdfvariable inclusionerrorlevel}
+\edef\pdfignoreunknownimages      {\pdfvariable ignoreunknownimages}
 \edef\pdfgentounicode             {\pdfvariable gentounicode}
 \edef\pdfpagebox                  {\pdfvariable pagebox}
 \edef\pdfminorversion             {\pdfvariable minorversion}
@@ -597,6 +598,7 @@ the defaults; these are:
 \pdfpkresolution         72
 \pdfinclusioncopyfonts    0
 \pdfinclusionerrorlevel   0
+\pdfignoreunknownimages   0
 \pdfgentounicode          0
 \pdfpagebox               0
 \pdfminorversion          4
diff --git a/manual/luatex.pdf b/manual/luatex.pdf
index 04583e69a01ae66aca38cc9634d510637f46d6fb..a6184c363e439a3400b507f1e5ce1d5ce9e91a98 100644
Binary files a/manual/luatex.pdf and b/manual/luatex.pdf differ
diff --git a/source/texk/web2c/luatexdir/image/writeimg.w b/source/texk/web2c/luatexdir/image/writeimg.w
index c002b56dca9682a550375cea1283e25d1578ee00..7407d228a0f246bd0c25e535130be744a08c68d5 100644
--- a/source/texk/web2c/luatexdir/image/writeimg.w
+++ b/source/texk/web2c/luatexdir/image/writeimg.w
@@ -22,7 +22,6 @@
 
 @ @c
 #include "ptexlib.h"
-#include <assert.h>
 #include <kpathsea/c-auto.h>
 #include <kpathsea/c-memstr.h>
 
@@ -112,31 +111,34 @@ static void check_type_by_header(image_dict * idict)
     FILE *file = NULL;
     char header[MAX_HEADER];
     char prefix[LEN_PDF_MEMSTREAM+1];
-
-    assert(idict != NULL);
+    if (idict == NULL)
+        return;
     if (img_type(idict) != IMG_TYPE_NONE)
         return;
     /* here we read the and also check for a memstream object */
-    assert(img_filepath(idict) && FOPEN_RBIN_MODE);
+    if (!img_filepath(idict) || !FOPEN_RBIN_MODE) {
+        normal_error("pdf backend","reading image file failed");
+    }
     file = fopen(img_filepath(idict), FOPEN_RBIN_MODE);
     if (file == NULL) {
         /* check the prefix of img_filepath(idict) */
         for (i = 0; (unsigned) i < LEN_PDF_MEMSTREAM; i++) {
-           prefix[i] = (char) (img_filepath(idict)[i]);
-         }
-         prefix[LEN_PDF_MEMSTREAM]='\0';
-         if (strncmp(prefix, HEADER_PDF_MEMSTREAM, LEN_PDF_MEMSTREAM) == 0) {
+            prefix[i] = (char) (img_filepath(idict)[i]);
+        }
+        prefix[LEN_PDF_MEMSTREAM]='\0';
+        if (strncmp(prefix, HEADER_PDF_MEMSTREAM, LEN_PDF_MEMSTREAM) == 0) {
             img_type(idict) = IMG_TYPE_PDFMEMSTREAM;
             return;
-          } else {
-            FATAL_PERROR(img_filepath(idict));
-          }
+        } else {
+            formatted_error("pdf backend","reading image file '%s' failed",img_filepath(idict));
+        }
     }
     /* a valid file, but perhaps unsupported */
     for (i = 0; (unsigned) i < MAX_HEADER; i++) {
         header[i] = (char) xgetc(file);
-        if (feof(file))
+        if (feof(file)) {
             normal_error("pdf backend","reading image file failed");
+        }
     }
     xfclose(file, img_filepath(idict));
     /* tests */
@@ -180,8 +182,6 @@ static void check_type_by_extension(image_dict * idict)
 @ @c
 void new_img_pdfstream_struct(image_dict * p)
 {
-    assert(p != NULL);
-    assert(img_pdfstream_ptr(p) == NULL);
     img_pdfstream_ptr(p) = xtalloc(1, pdf_stream_struct);
     img_pdfstream_stream(p) = NULL;
 }
@@ -203,7 +203,6 @@ image *new_image(void)
 image_dict *new_image_dict(void)
 {
     image_dict *p = xtalloc(1, image_dict);
-    assert(p != NULL);
     memset(p, 0, sizeof(image_dict));
     set_wd_running(p);
     set_ht_running(p);
@@ -238,7 +237,6 @@ void free_image_dict(image_dict * p)
     if (ini_version)
         return;                 /* The image may be \.{\\dump}ed to a format */
     /* called from limglib.c */
-    assert(img_state(p) < DICT_REFERED);
     switch (img_type(p)) {
         case IMG_TYPE_PDFMEMSTREAM:
         case IMG_TYPE_PDF:
@@ -266,10 +264,9 @@ void free_image_dict(image_dict * p)
         case IMG_TYPE_NONE:
             break;
         default:
-            assert(0);
+            normal_error("pdf backend","unknown image type");
     }
     free_dict_strings(p);
-    assert(img_file(p) == NULL);
     xfree(p);
 }
 
@@ -278,7 +275,6 @@ void read_img(image_dict * idict)
 {
     char *filepath = NULL;
     int callback_id;
-    assert(idict != NULL);
     if (img_filename(idict) == NULL) {
         normal_error("pdf backend","image file name missing");
     }
@@ -320,11 +316,20 @@ void read_img(image_dict * idict)
             read_jbig2_info(idict);
             break;
         default:
-            normal_error("pdf backend","internal error: unknown image type");
+            img_type(idict) = IMG_TYPE_NONE;
+            if (pdf_ignore_unknown_images) {
+                normal_warning("pdf backend","internal error: ignoring unknown image type");
+            } else {
+                normal_error("pdf backend","internal error: unknown image type");
+            }
+            break;
     }
     cur_file_name = NULL;
-    if (img_state(idict) < DICT_FILESCANNED)
+    if (img_type(idict) == IMG_TYPE_NONE) {
+        img_state(idict) = DICT_NEW;
+    } else if (img_state(idict) < DICT_FILESCANNED) {
         img_state(idict) = DICT_FILESCANNED;
+    }
 }
 
 @ @c
@@ -340,7 +345,9 @@ static image_dict *read_image(char *file_name, int page_num, char *page_name, in
     img_colorspace(idict) = colorspace;
     img_pagenum(idict) = page_num;
     img_pagename(idict) = page_name;
-    assert(file_name != NULL);
+    if (file_name == NULL) {
+        normal_error("pdf backend","no image filename given");
+    }
     cur_file_name = file_name;
     img_filename(idict) = file_name;
     img_pagebox(idict) = page_box;
@@ -400,7 +407,9 @@ void scan_pdfximage(PDF pdf) /* static_pdf */
     }
     scan_toks(false, true);
     file_name = tokenlist_to_cstring(def_ref, true, NULL);
-    assert(file_name != NULL);
+    if (file_name == NULL) {
+        normal_error("pdf backend","no image filename given");
+    }
     delete_token_ref(def_ref);
     idict = read_image(file_name, page, named, colorspace, pagebox);
     img_attr(idict) = attr;
@@ -423,16 +432,23 @@ void scan_pdfrefximage(PDF pdf)
     check_obj_type(pdf, obj_type_ximage, cur_val);
     tail_append(new_rule(image_rule));
     idict = idict_array[obj_data_ptr(pdf, cur_val)];
-    if (alt_rule.wd != null_flag || alt_rule.ht != null_flag
-        || alt_rule.dp != null_flag)
-        dim = scale_img(idict, alt_rule, transform);
-    else
-        dim = scale_img(idict, img_dimen(idict), img_transform(idict));
-    width(tail) = dim.wd;
-    height(tail) = dim.ht;
-    depth(tail) = dim.dp;
-    rule_transform(tail) = transform;
-    rule_index(tail) = img_index(idict);
+    if (img_state(idict) == DICT_NEW) {
+        normal_warning("image","don't rely on the image data to be okay");
+        width(tail) = 0;
+        height(tail) = 0;
+        depth(tail) = 0;
+    } else {
+        if (alt_rule.wd != null_flag || alt_rule.ht != null_flag || alt_rule.dp != null_flag) {
+            dim = scale_img(idict, alt_rule, transform);
+        } else {
+            dim = scale_img(idict, img_dimen(idict), img_transform(idict));
+        }
+        width(tail) = dim.wd;
+        height(tail) = dim.ht;
+        depth(tail) = dim.dp;
+        rule_transform(tail) = transform;
+        rule_index(tail) = img_index(idict);
+    }
 }
 
 @ |tex_scale()| sequence of decisions:
@@ -504,7 +520,6 @@ scaled_whd scale_img(image_dict * idict, scaled_whd alt_rule, int transform)
     int x, y, xr, yr, tmp;      /* size and resolution of image */
     scaled_whd nat;             /* natural size corresponding to image resolution */
     int default_res;
-    assert(idict != NULL);
     if ((img_type(idict) == IMG_TYPE_PDF || img_type(idict) == IMG_TYPE_PDFMEMSTREAM
          || img_type(idict) == IMG_TYPE_PDFSTREAM) && img_is_bbox(idict)) {
         x = img_xsize(idict) = img_bbox(idict)[2] - img_bbox(idict)[0]; /* dimensions from image.bbox */
@@ -557,7 +572,6 @@ scaled_whd scale_img(image_dict * idict, scaled_whd alt_rule, int transform)
 @ @c
 void write_img(PDF pdf, image_dict * idict)
 {
-    assert(idict != NULL);
     if (img_state(idict) < DICT_WRITTEN) {
         report_start_file(filetype_image, img_filepath(idict));
         switch (img_type(idict)) {
@@ -581,7 +595,7 @@ void write_img(PDF pdf, image_dict * idict)
             write_pdfstream(pdf, idict);
             break;
         default:
-            normal_error("pdf backend","internal error: unknown image type");
+            normal_error("pdf backend","internal error: writing unknown image type");
         }
         report_stop_file(filetype_image);
         if (img_type(idict) == IMG_TYPE_PNG) {
@@ -612,8 +626,6 @@ void check_pdfstream_dict(image_dict * idict)
 @ @c
 void write_pdfstream(PDF pdf, image_dict * idict)
 {
-    assert(img_pdfstream_ptr(idict) != NULL);
-    assert(img_is_bbox(idict));
     pdf_begin_obj(pdf, img_objnum(idict), OBJSTM_NEVER);
     pdf_begin_dict(pdf);
     pdf_dict_add_name(pdf, "Type", "XObject");
@@ -643,21 +655,18 @@ size_t idict_limit;
 
 void idict_to_array(image_dict * idict)
 {
-    assert(idict != NULL);
     if (idict_ptr - idict_array == 0) { /* align to count from 1 */
         alloc_array(idict, 1, SMALL_BUF_SIZE);  /* /Im0 unused */
         idict_ptr++;
     }
     alloc_array(idict, 1, SMALL_BUF_SIZE);
     *idict_ptr = idict;
-    assert(img_index(idict) == idict_ptr - idict_array);
     idict_ptr++;
 }
 
 void pdf_dict_add_img_filename(PDF pdf, image_dict * idict)
 {
     char s[21], *p;
-    assert(idict != NULL);
     if (pdf_image_addfilename>0) {
         /* for now PTEX.FileName only for PDF, but prepared for JPG, PNG, ... */
         if (! ( (img_type(idict) == IMG_TYPE_PDF) || (img_type(idict) == IMG_TYPE_PDFMEMSTREAM) ))
diff --git a/source/texk/web2c/luatexdir/lua/limglib.c b/source/texk/web2c/luatexdir/lua/limglib.c
index 22dc80e38d6f02912def47d3e04c83526f70962c..07467886b59cd8852da6522337dbb59d1c87483b 100644
--- a/source/texk/web2c/luatexdir/lua/limglib.c
+++ b/source/texk/web2c/luatexdir/lua/limglib.c
@@ -21,7 +21,6 @@
 #include "lua/luatex-api.h"
 #include <stdio.h>
 #include <string.h>
-#include <assert.h>
 #include "lua.h"
 #include "lauxlib.h"
 
@@ -65,8 +64,9 @@ static void copy_image(lua_State * L, lua_Number scale)
         img_dictref(b) = luaL_ref(L, LUA_REGISTRYINDEX);   /* b */
         d = img_dict(*aa);
         img_luaref(d) += 1;
-    } else
-        assert(img_state(img_dict(a)) >= DICT_REFERED);
+    } else if (img_state(img_dict(a)) < DICT_REFERED) {
+        luaL_error(L, "img.copy needs an proper image as argument");
+    }
 }
 
 static void lua_to_image(lua_State * L, image * a, image_dict * d);
@@ -75,8 +75,9 @@ int l_new_image(lua_State * L)
 {
     image *a, **aa;
     image_dict **add;
-    if (lua_gettop(L) > 0 && ! lua_istable(L, -1))
+    if (lua_gettop(L) > 0 && ! lua_istable(L, -1)) {
         luaL_error(L, "img.new needs table as optional argument");  /* (t) */
+    }
     aa = (image **) lua_newuserdata(L, sizeof(image *));            /* i (t) */
     luaL_getmetatable(L, TYPE_IMG);                                 /* m i (t) */
     lua_setmetatable(L, -2);                                        /* i (t) */
@@ -127,8 +128,9 @@ static void read_scale_img(image * a)
                 else {
                     read_img(ad);
                 }
-            }
-            if (is_wd_running(a) || is_ht_running(a) || is_dp_running(a)) {
+            } else if (img_state(ad) == DICT_NEW) {
+                normal_warning("image","don't rely on the image data to be okay");
+            } else if (is_wd_running(a) || is_ht_running(a) || is_dp_running(a)) {
                 img_dimen(a) = scale_img(ad, img_dimen(a), img_transform(a));
             }
         }
@@ -231,7 +233,7 @@ static void write_image_or_node(lua_State * L, wrtype_e writetype)
             lua_nodelib_push_fast(L, n);
             break;
         default:
-            assert(0);
+            luaL_error(L, "%s expects an valid image", wrtype_s[writetype]);
     }
     if (img_state(ad) < DICT_REFERED)
         img_state(ad) = DICT_REFERED;
@@ -297,7 +299,9 @@ void vf_out_image(PDF pdf, unsigned i)
     aa = (image **) luaL_checkudata(L, -1, TYPE_IMG);
     a = *aa;
     ad = img_dict(a);
-    assert(ad != NULL);
+    if (ad == NULL) {
+        luaL_error(L, "invalid image dictionary");
+    }
     setup_image(pdf, a, WR_VF_IMG);
     place_img(pdf, ad, img_dimen(a), img_transform(a));
     lua_pop(L, 1);
diff --git a/source/texk/web2c/luatexdir/lua/lpdflib.c b/source/texk/web2c/luatexdir/lua/lpdflib.c
index 3a1c58f2ed4e6b861b3433600992fe65fe1fb385..334571b215dea092a7354a5755dff026423c327e 100644
--- a/source/texk/web2c/luatexdir/lua/lpdflib.c
+++ b/source/texk/web2c/luatexdir/lua/lpdflib.c
@@ -961,6 +961,85 @@ static int setpdforigin(lua_State * L)
     return 0 ;
 }
 
+static int getpdforigin(lua_State * L)
+{
+    lua_pushinteger(L,get_tex_extension_dimen_register(d_pdf_h_origin));
+    lua_pushinteger(L,get_tex_extension_dimen_register(d_pdf_v_origin));
+    return 2 ;
+}
+
+static int setpdfthreadmargin(lua_State * L) {
+    if (lua_type(L, 1) == LUA_TNUMBER) {
+        set_tex_extension_dimen_register(d_pdf_thread_margin,lua_tointeger(L, 1));
+    }
+    return 0;
+}
+
+static int setpdfdestmargin(lua_State * L) {
+    if (lua_type(L, 1) == LUA_TNUMBER) {
+        set_tex_extension_dimen_register(d_pdf_dest_margin,lua_tointeger(L, 1));
+    }
+    return 0;
+}
+
+static int setpdflinkmargin(lua_State * L) {
+    if (lua_type(L, 1) == LUA_TNUMBER) {
+        set_tex_extension_dimen_register(d_pdf_link_margin,lua_tointeger(L, 1));
+    }
+    return 0;
+}
+
+static int setpdfxformmargin(lua_State * L) {
+    if (lua_type(L, 1) == LUA_TNUMBER) {
+        set_tex_extension_dimen_register(d_pdf_xform_margin,lua_tointeger(L, 1));
+    }
+    return 0;
+}
+
+static int getpdfthreadmargin(lua_State * L) {
+    lua_pushinteger(L,get_tex_extension_dimen_register(d_pdf_thread_margin));
+    return 1;
+}
+
+static int getpdfdestmargin(lua_State * L) {
+    lua_pushinteger(L,get_tex_extension_dimen_register(d_pdf_dest_margin));
+    return 1;
+}
+
+static int getpdflinkmargin(lua_State * L) {
+    lua_pushinteger(L,get_tex_extension_dimen_register(d_pdf_link_margin));
+    return 1;
+}
+
+static int getpdfxformmargin(lua_State * L) {
+    lua_pushinteger(L,get_tex_extension_dimen_register(d_pdf_xform_margin));
+    return 1;
+}
+
+static int setpdfinclusionerrorlevel(lua_State * L) {
+    if (lua_type(L, 1) == LUA_TNUMBER) {
+        set_tex_extension_count_register(c_pdf_inclusion_errorlevel,lua_tointeger(L, 1));
+    }
+    return 0;
+}
+
+static int setpdfignoreunknownimages(lua_State * L) {
+    if (lua_type(L, 1) == LUA_TNUMBER) {
+        set_tex_extension_count_register(c_pdf_ignore_unknown_images,lua_tointeger(L, 1));
+    }
+    return 0;
+}
+
+static int getpdfinclusionerrorlevel(lua_State * L) {
+    lua_pushinteger(L,get_tex_extension_count_register(c_pdf_inclusion_errorlevel));
+    return 1;
+}
+
+static int getpdfignoreunknownimages(lua_State * L) {
+    lua_pushinteger(L,get_tex_extension_count_register(c_pdf_ignore_unknown_images));
+    return 1;
+}
+
 static int newpdfcolorstack(lua_State * L)
 {
     const char *s = NULL;
@@ -993,20 +1072,19 @@ static int newpdfcolorstack(lua_State * L)
 }
 
 static const struct luaL_Reg pdflib[] = {
-    { "immediateobj", l_immediateobj },
-    { "mapfile", l_mapfile },
-    { "mapline", l_mapline },
-    { "maxobjnum", l_maxobjnum },
+    { "gethpos", l_gethpos },
+    { "getvpos", l_getvpos },
     { "obj", l_obj },
-    { "objtype", l_objtype },
-    { "pageref", l_pageref },
-    { "print", luapdfprint },
+    { "immediateobj", l_immediateobj },
     { "refobj", l_refobj },
     { "registerannot", l_registerannot },
     { "reserveobj", l_reserveobj },
     { "getpos", l_getpos },
-    { "gethpos", l_gethpos },
-    { "getvpos", l_getvpos },
+    { "pageref", getpdfpageref },
+    { "maxobjnum", l_maxobjnum },
+    { "pageref", l_pageref },
+    { "print", luapdfprint },
+    { "objtype", l_objtype },
     { "getmatrix", l_getmatrix },
     { "hasmatrix", l_hasmatrix },
     { "setcatalog", l_set_catalog },
@@ -1038,16 +1116,30 @@ static const struct luaL_Reg pdflib[] = {
     { "getdecimaldigits", l_get_decimal_digits },
     { "setdecimaldigits", l_set_decimal_digits },
     /* moved from tex table */
-    { "fontname", getpdffontname},
-    { "fontobjnum", getpdffontobjnum},
-    { "fontsize", getpdffontsize},
-    { "pageref", getpdfpageref},
-    { "xformname", getpdfxformname},
-    { "getversion", getpdfversion},
-    { "getminorversion", getpdfminorversion},
-    { "setminorversion", setpdfminorversion},
-    { "newcolorstack", newpdfcolorstack},
-    { "setorigin",setpdforigin},
+    { "fontname", getpdffontname },
+    { "fontobjnum", getpdffontobjnum },
+    { "fontsize", getpdffontsize },
+    { "xformname", getpdfxformname },
+    { "getversion", getpdfversion },
+    { "getminorversion", getpdfminorversion },
+    { "setminorversion", setpdfminorversion },
+    { "newcolorstack", newpdfcolorstack },
+    { "setorigin", setpdforigin },
+    { "getorigin", getpdforigin },
+    { "setthreadmargin", setpdfthreadmargin },
+    { "setdestmargin", setpdfdestmargin },
+    { "setlinkmargin", setpdflinkmargin },
+    { "setxformmargin", setpdfxformmargin },
+    { "getthreadmargin", getpdfthreadmargin },
+    { "getdestmargin", getpdfdestmargin },
+    { "getlinkmargin", getpdflinkmargin },
+    { "getxformmargin", getpdfxformmargin },
+    { "getinclusionerrorlevel", getpdfinclusionerrorlevel },
+    { "getignoreunknownimages", getpdfignoreunknownimages },
+    { "setinclusionerrorlevel", setpdfinclusionerrorlevel },
+    { "setignoreunknownimages", setpdfignoreunknownimages },
+    { "mapfile", l_mapfile },
+    { "mapline", l_mapline },
     /* sentinel */
     {NULL, NULL}
 };
diff --git a/source/texk/web2c/luatexdir/pdf/pdftables.h b/source/texk/web2c/luatexdir/pdf/pdftables.h
index f42122ee64424558202d8a8b8eddea61b62bf875..7b508c4e16129824f2af22f73b81ec9ee147dc0e 100644
--- a/source/texk/web2c/luatexdir/pdf/pdftables.h
+++ b/source/texk/web2c/luatexdir/pdf/pdftables.h
@@ -122,6 +122,7 @@ typedef enum {
     c_pdf_minor_version,
     c_pdf_pagebox,
     c_pdf_inclusion_errorlevel,
+    c_pdf_ignore_unknown_images,
     c_pdf_gamma,
     c_pdf_image_apply_gamma,
     c_pdf_image_gamma,
@@ -163,6 +164,7 @@ extern int pdf_retval;
 #  define pdf_minor_version           get_tex_extension_count_register(c_pdf_minor_version)
 #  define pdf_pagebox                 get_tex_extension_count_register(c_pdf_pagebox)
 #  define pdf_inclusion_errorlevel    get_tex_extension_count_register(c_pdf_inclusion_errorlevel)
+#  define pdf_ignore_unknown_images   get_tex_extension_count_register(c_pdf_ignore_unknown_images)
 #  define pdf_gamma                   get_tex_extension_count_register(c_pdf_gamma)
 #  define pdf_image_apply_gamma       get_tex_extension_count_register(c_pdf_image_apply_gamma)
 #  define pdf_image_gamma             get_tex_extension_count_register(c_pdf_image_gamma)
diff --git a/source/texk/web2c/luatexdir/tex/textoken.w b/source/texk/web2c/luatexdir/tex/textoken.w
index 996e3cf2303cae98c32e5d51384545e627b9364d..0cdbb9703c37c2cee7e8786c3085523291359231 100644
--- a/source/texk/web2c/luatexdir/tex/textoken.w
+++ b/source/texk/web2c/luatexdir/tex/textoken.w
@@ -2303,6 +2303,7 @@ static int do_variable_pdf(halfword c)
     else if (scan_keyword("minorversion"))        { do_variable_backend_int(c_pdf_minor_version); }
     else if (scan_keyword("pagebox"))             { do_variable_backend_int(c_pdf_pagebox); }
     else if (scan_keyword("inclusionerrorlevel")) { do_variable_backend_int(c_pdf_inclusion_errorlevel); }
+    else if (scan_keyword("ignoreunknownimages")) { do_variable_backend_int(c_pdf_ignore_unknown_images); }
     else if (scan_keyword("gamma"))               { do_variable_backend_int(c_pdf_gamma); }
     else if (scan_keyword("imageapplygamma"))     { do_variable_backend_int(c_pdf_image_apply_gamma); }
     else if (scan_keyword("imagegamma"))          { do_variable_backend_int(c_pdf_image_gamma); }