diff --git a/Contrib/Modern UI/Readme.html b/Contrib/Modern UI/Readme.html
index 736b2471..aecfbf2d 100644
--- a/Contrib/Modern UI/Readme.html
+++ b/Contrib/Modern UI/Readme.html
@@ -160,6 +160,11 @@ follow these steps:
MUI_STARTMENU_DEFAULTFOLDER
The default Start Menu Folder. Use $(LANGSTRINGNAME) as value is you want
to use a language string.
+ MUI_STARTMENU_REGISTRY_ROOT, MUI_STARTMENU_REGISTRY_KEY,
+ MUI_STARTMENU_REGISTRY_VALUENAME
+ If your installer saves the Start Menu folder of a previous installation
+ in a registry, define these values and the Modern UI will use the saved
+ value as default folder.
MUI_FINISHPAGE
Show the Finish page.
diff --git a/Contrib/Modern UI/System.nsh b/Contrib/Modern UI/System.nsh
index 284c82c6..d6713146 100644
--- a/Contrib/Modern UI/System.nsh
+++ b/Contrib/Modern UI/System.nsh
@@ -1066,11 +1066,27 @@
!ifndef MUI_STARTMENU_DEFAULTFOLDER
!define MUI_STARTMENU_DEFAULTFOLDER "${MUI_PRODUCT}"
!endif
-
+
Function "${SETSTARTMENU}"
!insertmacro MUI_HEADER_TEXT $(MUI_TEXT_STARTMENU_TITLE) $(MUI_TEXT_STARTMENU_SUBTITLE)
+ !ifdef MUI_STARTMENU_REGISTRY_ROOT
+ !ifdef MUI_STARTMENU_REGISTRY_KEY
+ !ifdef MUI_STARTMENU_REGISTRY_VALUENAME
+
+ StrCmp "${MUI_STARTMENU_VARIABLE}" "" "" +6
+
+ Push ${MUI_TEMP1}
+ ReadRegStr ${MUI_TEMP1} "${MUI_STARTMENU_REGISTRY_ROOT}" "${MUI_STARTMENU_REGISTRY_KEY}" "${MUI_STARTMENU_REGISTRY_VALUENAME}"
+ StrCmp ${MUI_TEMP1} "" +2
+ StrCpy "${MUI_STARTMENU_VARIABLE}" ${MUI_TEMP1}
+ Pop ${MUI_TEMP1}
+
+ !endif
+ !endif
+ !endif
+
StartMenu::Select /noicon /autoadd /text "$(MUI_INNERTEXT_STARTMENU_TOP)" /lastused "${MUI_STARTMENU_VARIABLE}" /checknoshortcuts "$(MUI_INNERTEXT_STARTMENU_CHECKBOX)" "${MUI_STARTMENU_DEFAULTFOLDER}"
Pop "${MUI_STARTMENU_VARIABLE}"
diff --git a/Examples/Modern UI/StartMenu.nsi b/Examples/Modern UI/StartMenu.nsi
index 27e99d53..faeaf0cf 100644
--- a/Examples/Modern UI/StartMenu.nsi
+++ b/Examples/Modern UI/StartMenu.nsi
@@ -10,10 +10,9 @@
;$9 is being used to store the Start Menu Folder.
;Do not use this variable in your script (or Push/Pop it)!
-;You can change this variable or the default Start Menu Folder by using
-;these defines:
-;!define MUI_STARTMENU_VARIABLE "$VAR"
-;!define MUI_STARTMENU_DEFAULTFOLDER "Folder Name"
+;To change this variable, use MUI_STARTMENU_VARIABLE.
+;Have a look at the Readme for info about other options (default folder,
+;registry).
!define TEMP $R0