Function GetStartMenuUserInfo ;called when user choose to put links in its start menu Push $1 Push $2 Push $3 StrCpy $1 "$SMPROGRAMS" StrCpy $2 1 loop: ReadRegStr $3 HKLM \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\PushPin" \ "StartMenuProgramsPath$2" StrCmp $3 "" go StrCmp $3 $1 end IntOp $2 $2 + 1 Goto loop go: WriteRegStr HKLM \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\PushPin" \ "StartMenuProgramsPath$2" \ "$1" end: Pop $3 Pop $2 Pop $1 FunctionEnd ;NB : this works fine ------- Function un.RemoveStartMenuItems ; called in uninstall section Push $1 Push $2 StrCpy $1 1 DetailPrint "Removing shortcuts..." loop: ReadRegStr $2 HKLM \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\PushPin" \ "StartMenuProgramsPath$1" StrCmp $2 "" end Delete "$2\PushPin\*.*" RMDir "$2\PushPin" /r DeleteRegKey HKLM \ "Software\Microsoft\Windows\CurrentVersion\Uninstall\PushPin" \ "StartMenuProgramsPath$1" IntOp $1 $1 + 1 Goto loop end: DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\PushPin" Pop $2 Pop $1 FunctionEnd ; I don't know why but only the first Start Menu Programs item of the list is removed, is it due to makensis (I use makensisw which doesn't crash when compiling, downloaded from this forum) or to me ? (when I download makensis 1.52 and makensisw 1.10 from CVS I got corrupted files - not win32 appz) Regards