diff --git a/src/workarounds/workarounds.c b/src/workarounds/workarounds.c
index 5e0c221..f987fa0 100644
--- a/src/workarounds/workarounds.c
+++ b/src/workarounds/workarounds.c
@@ -198,6 +198,9 @@ workaroundsPaintScreen (CompScreen *s,
currentScreen = s;
+ if (workaroundsGetForceGlxSync (s->display))
+ glXWaitX ();
+
UNWRAP (ws, s, paintScreen);
(*s->paintScreen) (s, outputs, numOutputs, mask);
WRAP (ws, s, paintScreen, workaroundsPaintScreen);
diff --git a/metadata/workarounds.xml.in b/metadata/workarounds.xml.in
index 5eb072d..1648e88 100644
--- a/metadata/workarounds.xml.in
+++ b/metadata/workarounds.xml.in
@@ -53,6 +53,11 @@
<_long>Fix for broken GLX_MESA_copy_sub_buffer on XGL in fglrx.
false
+
<_short>Window stickyness