diff --git a/src/linguist/lupdate/lupdate.exe.manifest b/src/linguist/lupdate/lupdate.exe.manifest
new file mode 100644
index 0000000000000000000000000000000000000000..945d289979d38c96cc603a0277de4541dc2c1bff
--- /dev/null
+++ b/src/linguist/lupdate/lupdate.exe.manifest
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <!-- Make sure Windows UAC does not believe lupdate is an installer. -->
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
+    <security>
+      <requestedPrivileges>
+        <requestedExecutionLevel
+          level="asInvoker"
+          uiAccess="false"/>
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</assembly>
diff --git a/src/linguist/lupdate/lupdate.pro b/src/linguist/lupdate/lupdate.pro
index bd67e49a08514e527f4aca8270b81126795f5c89..710fd9b1d1b1745fc71e0a327711ebef20a31caa 100644
--- a/src/linguist/lupdate/lupdate.pro
+++ b/src/linguist/lupdate/lupdate.pro
@@ -29,6 +29,10 @@ HEADERS += \
     lupdate.h \
     ../shared/simtexth.h
 
+mingw {
+    RC_FILE = lupdate.rc
+}
+
 qmake.name = QMAKE
 qmake.value = $$shell_path($$QMAKE_QMAKE)
 QT_TOOL_ENV += qmake
diff --git a/src/linguist/lupdate/lupdate.rc b/src/linguist/lupdate/lupdate.rc
new file mode 100644
index 0000000000000000000000000000000000000000..45c4935762511d7f8e49c539edb491b596ae6afc
--- /dev/null
+++ b/src/linguist/lupdate/lupdate.rc
@@ -0,0 +1,4 @@
+#define RT_MANIFEST 24
+#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
+
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "lupdate.exe.manifest"