diff --git a/source/texk/web2c/luatexdir/font/vfpacket.w b/source/texk/web2c/luatexdir/font/vfpacket.w
index 32b5e6346725ced3142d6ce42abf3468d4bef2bf..5b76eb81f40aec559fe989fdba11cf62da95c2b6 100644
--- a/source/texk/web2c/luatexdir/font/vfpacket.w
+++ b/source/texk/web2c/luatexdir/font/vfpacket.w
@@ -202,13 +202,13 @@ void do_vf_packet(PDF pdf, internal_font_number vf_f, int c, int ex_glyph)
             break;
         case packet_char_code:
             packet_number(k);
-            if (!char_exists(vp->lf, (int) k))
+            /* we also check if c == k and font(c) == font)k) */
+            if (!char_exists(vp->lf, (int) k)) {
                 char_warning(vp->lf, (int) k);
-            else {
-                if (has_packet(vp->lf, (int) k))
-                    do_vf_packet(pdf, vp->lf, (int) k, ex_glyph);
-                else
-                    backend_out[glyph_node] (pdf, vp->lf, (int) k, ex_glyph);
+            } else if (! ((c == k && vp->lf == vf_f)) && (has_packet(vp->lf, (int) k))) {
+                do_vf_packet(pdf, vp->lf, (int) k, ex_glyph);
+            } else {
+                backend_out[glyph_node] (pdf, vp->lf, (int) k, ex_glyph);
             }
             w = char_width(vp->lf, (int) k);
             mat_p->pos.h += round_xn_over_d(w, 1000 + ex_glyph, 1000);
diff --git a/source/texk/web2c/luatexdir/luatex.c b/source/texk/web2c/luatexdir/luatex.c
index 0ff892e622226ebe234e85c6854db26ae6945f40..f4b2945d970a26fd49d5a8dbcfeacbd8b4d5b5d2 100644
--- a/source/texk/web2c/luatexdir/luatex.c
+++ b/source/texk/web2c/luatexdir/luatex.c
@@ -28,10 +28,10 @@
 
 #define TeX
 
-int luatex_version = 96;        /* \.{\\luatexversion}  */
+int luatex_version = 97;        /* \.{\\luatexversion}  */
 int luatex_revision = '0';      /* \.{\\luatexrevision}  */
-int luatex_date_info = 2016051817;     /* the compile date is now hardwired */
-const char *luatex_version_string = "0.96.0";
+int luatex_date_info = 2016060720;     /* the compile date is now hardwired */
+const char *luatex_version_string = "0.97.0";
 const char *engine_name = my_name;     /* the name of this engine */
 
 #include <kpathsea/c-ctype.h>