diff --git a/ChangeLog b/ChangeLog
index 638d848bd98ebd291adc366137067eaaff33f929..7c0c64e42613f204bbf2a7bb320336ce4af9dc60 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,9 @@
 	* src/color.c (color_update): Move some variables to a better place.
 	* src/*: Make 'meta_key' and 'func_key' into global variables, instead
 	of having them declared everywhere and passing them around endlessly.
+	* src/global.c (sc_seq_or): Now fix a bug introduced somewhere after
+	2.3.2 where binding a movement function to a Meta key would make the
+	corresponding Arrow key stop working (producing a character instead).
 
 2014-06-29  Benno Schulenberg  <bensberg@justemail.net>
 	* src/rcfile.c: Fix compilation with --enable-tiny --enable-nanorc.
diff --git a/src/global.c b/src/global.c
index 9a01ae96605776529eb1fe86eb679d00bffd7bf9..2e8c2275b78dbeb6508c8263b89c0ad22fea27a6 100644
--- a/src/global.c
+++ b/src/global.c
@@ -391,8 +391,10 @@ int sc_seq_or(void (*func)(void), int defaultval)
 {
     const sc *s = first_sc_for(currmenu, func);
 
-    if (s)
+    if (s) {
+	meta_key = (s->type == META);
         return s->seq;
+    }
     /* else */
     return defaultval;
 }