diff --git a/gnu/packages/display-managers.scm b/gnu/packages/display-managers.scm
index cfd2e6dd9585b9b0a71f4fcd35bef86ac40e7881..cda7598066e7813df7525c51124db770d583b36d 100644
--- a/gnu/packages/display-managers.scm
+++ b/gnu/packages/display-managers.scm
@@ -209,7 +209,17 @@ (define-public lightdm-gtk-greeter
      `(#:configure-flags
        (list (string-append "--enable-at-spi-command="
                             (assoc-ref %build-inputs "at-spi2-core")
-                            "/libexec/at-spi-bus-launcher"))))
+                            "/libexec/at-spi-bus-launcher"))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'fix-.desktop-file
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* (string-append
+                             out "/share/xgreeters/lightdm-gtk-greeter.desktop")
+                 (("Exec=lightdm-gtk-greeter")
+                  (string-append "Exec=" out "/sbin/lightdm-gtk-greeter")))
+               #t))))))
     (native-inputs
      `(("exo" ,exo)
        ("intltool" ,intltool)