diff --git a/helpers/DATA/mate-session-manager/mate-wm b/helpers/DATA/mate-session-manager/mate-wm
index e2853a521e2f7605ba34f12560f525866e97be5e..ec876550c267817ffbfd23c987288224149ef128 100755
--- a/helpers/DATA/mate-session-manager/mate-wm
+++ b/helpers/DATA/mate-session-manager/mate-wm
@@ -40,22 +40,9 @@ for n in "$@" ; do
   esac
 done
 
-glxinfo |grep "OpenGL renderer"| grep -vi Gallium | grep -q .
-IS_X_COMPOSITED=$?
-
 # WINDOW_MANAGER overrides all
 if [ -z "$WINDOW_MANAGER" ] ; then
-    WINDOW_MANAGER=`gsettings get org.mate.session.required-components windowmanager 2> /dev/null | sed s/\'//g`
-fi
-
-if [ "x$WINDOW_MANAGER" = "xmarco-compton" ] && [ $IS_X_COMPOSITED != 0 ]; then
-    WINDOW_MANAGER=marco-no-composite
-    gsettings set org.mate.session.required-components windowmanager marco-no-composite
-fi
-
-if [ "x$WINDOW_MANAGER" = "xmarco-compton" ] && [ $IS_X_COMPOSITED = 0 ]; then
-    WINDOW_MANAGER=marco-compton
-    gsettings set org.mate.session.required-components windowmanager marco-compton
+    WINDOW_MANAGER=`gsettings get org.mate.session.required-components windowmanager 2> /dev/null | sed -r -e "s/^'([^']*)'$/\\1/"`
 fi
 
 # Migrate compiz to compiz-manager if possible and needed
@@ -74,25 +61,20 @@ fi
 # Avoid looping if the session configuration tells us to use mate-wm or if
 # the user forces mate-wm via WINDOW_MANAGER
 if [ "x$WINDOW_MANAGER" = "xmate-wm" ]; then
-  if [ $IS_X_COMPOSITED = 0 ]; then
-    WINDOW_MANAGER="marco-compton"
-    gsettings set org.mate.session.required-components windowmanager marco-compton
-  else
-    WINDOW_MANAGER="marco-no-composite"
-    gsettings set org.mate.session.required-components windowmanager marco-no-composite
-  fi
+  WINDOW_MANAGER=""
 fi
 
 if [ -z "$WINDOW_MANAGER" ] ; then
   # Create a list of window manager we can handle, trying to only use the
   # compositing ones when it makes sense
 
-  KNOWN_WM="sawfish sawmill enlightenment icewm wmaker fvwm2 qvwm fvwm twm kwm"
+  xdpyinfo 2> /dev/null | grep -q "^ *Composite$" 2> /dev/null
+  IS_X_COMPOSITED=$?
 
+  KNOWN_WM="sawfish sawmill enlightenment icewm wmaker fvwm2 qvwm fvwm twm kwm"
   if [ $IS_X_COMPOSITED -eq 0 ] ; then
-    KNOWN_WM="marco-compton mutter compiz-manager compiz beryl $KNOWN_WM"
+    KNOWN_WM="mutter compiz-manager compiz beryl $KNOWN_WM"
   fi
-
   # marco is still the default wm in MATE
   KNOWN_WM="marco $KNOWN_WM"
 
@@ -174,6 +156,10 @@ case `basename $WINDOW_MANAGER` in
     ;;
 esac
 
+if [ $IS_X_COMPOSITED -eq 0 ] && [ $WINDOW_MANAGER = marco ] && [ -x /usr/bin/marco-picom ] ; then
+  WINDOW_MANAGER=marco-picom
+fi
+
 exec $WINDOW_MANAGER $OPT1 $OPT2 $OPT3 $OPT4
 
 echo "ERROR: No window manager could run!"
diff --git a/helpers/make-mate-session-manager b/helpers/make-mate-session-manager
index 323404b0c20cf1c38e284d9aea09b6bddc76d8f0..150d5a6793ae34297bc46f34a6f9d95dc61559d4 100644
--- a/helpers/make-mate-session-manager
+++ b/helpers/make-mate-session-manager
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#    Copyright (C) 2017  Ruben Rodriguez <ruben@trisquel.info>
+#    Copyright (C) 2017-2022  Ruben Rodriguez <ruben@trisquel.info>
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 #
 
-VERSION=4
+VERSION=5
 
 . ./config