diff --git a/.gitignore b/.gitignore
index 1b84bcee..7f034c10 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,4 @@ distributions/opus*
 distributions/jack2
 distributions/claudio_piano.sf2
 distributions/fluidsynth*
+distributions/jamulus.desktop
diff --git a/Jamulus.pro b/Jamulus.pro
index d626af4e..42c2777f 100755
--- a/Jamulus.pro
+++ b/Jamulus.pro
@@ -301,18 +301,16 @@ win32 {
     }
     BINDIR = $$absolute_path($$BINDIR, $$PREFIX)
     target.path = $$BINDIR
-    INSTALLS += target
 
     isEmpty(APPSDIR) {
         APPSDIR = share/applications
     }
     APPSDIR = $$absolute_path($$APPSDIR, $$PREFIX)
     desktop.path = $$APPSDIR
+    QMAKE_SUBSTITUTES += distributions/jamulus.desktop.in
     desktop.files = distributions/jamulus.desktop
-    # the .desktop file assumes the binary is called jamulus
-    contains(CONFIG, "noupcasename") {
-        INSTALLS += desktop
-    }
+
+    INSTALLS += target desktop
 }
 
 RCC_DIR = src/res
@@ -617,6 +615,7 @@ DISTFILES += ChangeLog \
     COPYING \
     INSTALL.md \
     README.md \
+    distributions/jamulus.desktop.in \
     src/res/translation/translation_de_DE.qm \
     src/res/translation/translation_fr_FR.qm \
     src/res/translation/translation_pt_PT.qm \
diff --git a/distributions/jamulus.desktop b/distributions/jamulus.desktop.in
similarity index 95%
rename from distributions/jamulus.desktop
rename to distributions/jamulus.desktop.in
index e12447c6..2acd1025 100644
--- a/distributions/jamulus.desktop
+++ b/distributions/jamulus.desktop.in
@@ -4,7 +4,7 @@ Comment=Jam Session
 Comment[fr]=Séance de bœuf
 GenericName=Internet Jam Session Software
 GenericName[fr]=Logiciel de séance de bœuf sur Internet
-Exec=jamulus
+Exec=$$TARGET
 Icon=jamulus
 Terminal=false
 Type=Application