diff --git a/pkgs/applications/window-managers/compiz/plugins-extra.nix b/pkgs/applications/window-managers/compiz/plugins-extra.nix
index 65a0be2da99..18b779d9b49 100644
--- a/pkgs/applications/window-managers/compiz/plugins-extra.nix
+++ b/pkgs/applications/window-managers/compiz/plugins-extra.nix
@@ -11,6 +11,12 @@ stdenv.mkDerivation rec {
sha256 = "1qbxfi332bbadm0ah48frnrl9dkczl111s5a91a0cqz5v7nbw4g1";
};
+ patches =
+ [ # Support scaling wallpapers to the maximum size while still
+ # respecting the aspect ratio.
+ ./wallpaper-maxpect.patch
+ ];
+
NIX_CFLAGS_COMPILE = "-I${compiz_plugins_main}/include/compiz";
buildInputs =
diff --git a/pkgs/applications/window-managers/compiz/wallpaper-maxpect.patch b/pkgs/applications/window-managers/compiz/wallpaper-maxpect.patch
new file mode 100644
index 00000000000..8130dff1dba
--- /dev/null
+++ b/pkgs/applications/window-managers/compiz/wallpaper-maxpect.patch
@@ -0,0 +1,58 @@
+diff -x '*~' -ru compiz-plugins-extra-0.8.6-orig/metadata/wallpaper.xml.in compiz-plugins-extra-0.8.6/metadata/wallpaper.xml.in
+--- compiz-plugins-extra-0.8.6-orig/metadata/wallpaper.xml.in 2010-03-29 16:09:17.000000000 +0200
++++ compiz-plugins-extra-0.8.6/metadata/wallpaper.xml.in 2010-10-21 00:23:18.000000000 +0200
+@@ -24,7 +24,7 @@
+ <_long>Image position.
+ int
+ 0
+- 4
++ 5
+
+ 0
+ <_name>Scale and Crop
+@@ -45,6 +45,10 @@
+ 4
+ <_name>Center Tiled
+
++
++ 5
++ <_name>Centered Maxpect
++
+
+