diff --git a/manual/luatex-math.tex b/manual/luatex-math.tex
index 33b57ff3e203690dfc6907e166bb5e01ca6ad877..fa963360b9eaa99a08da25ea4d694ab8ab78ee5f 100644
--- a/manual/luatex-math.tex
+++ b/manual/luatex-math.tex
@@ -412,8 +412,8 @@ to fully control spacing. Therefore \LUATEX\ comes with a new directive: \type
 {\mathdisplayskipmode}. The following values apply:
 
 \starttabulate
-\NC 0 \NC normal \TEX\ behaviour: always above, only below when larger than zero \NC \NR
-\NC 1 \NC always \NC \NR
+\NC 0 \NC normal \TEX\ behaviour \NC \NR
+\NC 1 \NC always (same as 0) \NC \NR
 \NC 2 \NC only when not zero \NC \NR
 \NC 3 \NC never, not even when not zero \NC \NR
 \stoptabulate
diff --git a/manual/luatex.pdf b/manual/luatex.pdf
index bfffa3ebdb15f818c8b5aba3546967d96e21ffc9..ac284de62f0ec8b1fe35a5f2fa561e4a6a751657 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 0f005ebebfd4b946ac9713f166f11badfa0cebc2..11e4e6acb427c559b1ef4f8dbfbcf8147bb88974 100644
--- a/source/texk/web2c/luatexdir/luatex_svnversion.h
+++ b/source/texk/web2c/luatexdir/luatex_svnversion.h
@@ -1 +1 @@
-#define luatex_svn_revision 6377
+#define luatex_svn_revision 6378
diff --git a/source/texk/web2c/luatexdir/tex/texmath.w b/source/texk/web2c/luatexdir/tex/texmath.w
index 9e03a0e16e25d902608608d199d3c8a97a3a880c..0f75f348bf09530e1b04a64d6c43287203dd504e 100644
--- a/source/texk/web2c/luatexdir/tex/texmath.w
+++ b/source/texk/web2c/luatexdir/tex/texmath.w
@@ -2150,36 +2150,41 @@ At this time we are in vertical mode (or internal vertical mode).
 
 @c
 #define inject_display_skip_before(g) \
-    switch (display_skip_mode_par) { \
-        case 0 : /* normal tex */ \
-            tail_append(new_param_glue(g)); \
-            break;\
-        case 1 : /* always */ \
-            tail_append(new_param_glue(g)); \
-            break; \
-        case 2 : /* non-zero */ \
-            if (g != 0 && ! glue_is_zero(glue_par(g))) \
+    if (g > 0) { \
+        switch (display_skip_mode_par) { \
+            case 0 : /* normal tex | always */ \
+            case 1 : /* always */ \
                 tail_append(new_param_glue(g)); \
-            break; \
-        case 3: /* ignore */ \
-            break; \
+                break; \
+            case 2 : /* non-zero */ \
+                if (! glue_is_zero(glue_par(g))) \
+                    tail_append(new_param_glue(g)); \
+                break; \
+            case 3: /* ignore */ \
+                break; \
+            default: /* > 3 reserved for future use */ \
+                tail_append(new_param_glue(g)); \
+                break; \
+        } \
     }
 
 #define inject_display_skip_after(g) \
-    switch (display_skip_mode_par) { \
-        case 0 : /* normal tex */ \
-            if (g != 0 && glue_is_positive(glue_par(g))) \
+    if (g > 0) { \
+        switch (display_skip_mode_par) { \
+            case 0 : /* normal tex | always */ \
+            case 1 : /* always */ \
                 tail_append(new_param_glue(g)); \
-            break; \
-        case 1 : /* always */ \
-            tail_append(new_param_glue(g)); \
-            break; \
-        case 2 : /* non-zero */ \
-            if (g != 0 && ! glue_is_zero(glue_par(g))) \
+                break; \
+            case 2 : /* non-zero */ \
+                if (! glue_is_zero(glue_par(g))) \
+                    tail_append(new_param_glue(g)); \
+                break; \
+            case 3: /* ignore */ \
+                break; \
+            default: /* > 3 reserved for future use */ \
                 tail_append(new_param_glue(g)); \
-            break; \
-        case 3: /* ignore */ \
-            break; \
+                break; \
+        } \
     }
 
 static void finish_displayed_math(boolean l, pointer eqno_box, pointer p)