diff --git a/SOURCES/0001-clutter-Do-not-latch-modifiers-on-modifier-keys.patch b/SOURCES/0001-clutter-Do-not-latch-modifiers-on-modifier-keys.patch
new file mode 100644
index 0000000..7a9604e
--- /dev/null
+++ b/SOURCES/0001-clutter-Do-not-latch-modifiers-on-modifier-keys.patch
@@ -0,0 +1,44 @@
+From 67aab7c13812befde061f0d2068b431b04dcbc98 Mon Sep 17 00:00:00 2001
+From: Carlos Garnacho <carlosg@gnome.org>
+Date: Wed, 3 Oct 2018 22:43:21 +0200
+Subject: [PATCH] clutter: Do not latch modifiers on modifier keys
+
+If the user maps eg. Alt+F2 to a pad button, the MetaInputSettings will
+send the full Alt press, F2 press, F2 release, Alt release sequence.
+However the keycode corresponding to Alt is found in level 1, so the
+Shift modifier gets unintendedly latched in addition to the Alt key
+press/release pair.
+
+We could probably improve keycode lookup heuristics so level=0 (and
+no modifier latching) is preferred, but we can do without it altogether
+for modifier keys.
+---
+ clutter/clutter/x11/clutter-virtual-input-device-x11.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/clutter/clutter/x11/clutter-virtual-input-device-x11.c b/clutter/clutter/x11/clutter-virtual-input-device-x11.c
+index b86ded0d0..e16ba3fd0 100644
+--- a/clutter/clutter/x11/clutter-virtual-input-device-x11.c
++++ b/clutter/clutter/x11/clutter-virtual-input-device-x11.c
+@@ -147,14 +147,16 @@ clutter_virtual_input_device_x11_notify_keyval (ClutterVirtualInputDevice *virtu
+       return;
+     }
+ 
+-  if (key_state == CLUTTER_KEY_STATE_PRESSED)
++  if (!_clutter_keymap_x11_get_is_modifier (keymap, keycode) &&
++      key_state == CLUTTER_KEY_STATE_PRESSED)
+     clutter_keymap_x11_latch_modifiers (keymap, level, TRUE);
+ 
+   XTestFakeKeyEvent (clutter_x11_get_default_display (),
+                      (KeyCode) keycode,
+                      key_state == CLUTTER_KEY_STATE_PRESSED, 0);
+ 
+-  if (key_state == CLUTTER_KEY_STATE_RELEASED)
++  if (!_clutter_keymap_x11_get_is_modifier (keymap, keycode) &&
++      key_state == CLUTTER_KEY_STATE_RELEASED)
+     clutter_keymap_x11_latch_modifiers (keymap, level, FALSE);
+ }
+ 
+-- 
+2.19.0
+
diff --git a/SPECS/mutter.spec b/SPECS/mutter.spec
index 0b9d366..a577c51 100644
--- a/SPECS/mutter.spec
+++ b/SPECS/mutter.spec
@@ -10,7 +10,7 @@
 
 Name:          mutter
 Version:       3.28.3
-Release:       4%{?dist}
+Release:       5%{?dist}
 Summary:       Window and compositing manager based on Clutter
 
 License:       GPLv2+
@@ -44,6 +44,8 @@ Patch21: 0001-build-Lower-automake-requirement.patch
 # https://bugzilla.redhat.com/show_bug.cgi?id=1497303
 Patch31: 0001-monitor-manager-only-reuse-initial-config-if-monitor.patch
 
+Patch32: 0001-clutter-Do-not-latch-modifiers-on-modifier-keys.patch
+
 # el7 patches
 Patch100: 0001-Revert-build-Require-libgudev-232.patch
 Patch101: 0001-rhel7-Fix-build-for-el7.patch
@@ -214,6 +216,10 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
 %{_libdir}/pkgconfig/*
 
 %changelog
+* Wed Oct 10 2018 Carlos Garnacho <cgarnach@redhat.com> - 3.28.3-5
+- Do not latch modifiers on modifier keys
+  Resolves: #1637822
+
 * Fri Sep 21 2018 Ray Strode <rstrode@redhat.com> - 3.28.3-4
 - Fix crasher introduced in the previous build
   Related: #1497303 1618632