diff --git a/Docs/src/history.but b/Docs/src/history.but
index 1c177ee3..1bf04970 100644
--- a/Docs/src/history.but
+++ b/Docs/src/history.but
@@ -40,7 +40,7 @@
\e{v2.0b2}
-\b NSIS Menu: links to all NSIS utitlies, documentation and websites
+\b NSIS Menu: links to all NSIS utilities, documentation and websites
\b NSIS Update: check for new releases, download latest development files
@@ -402,4 +402,4 @@
\b Made config.h have hacks for easier building for me. :)
-\e{For complete version history, see \W{http://www.nullsoft.com/free/nsis/version-history.html}{http://www.nullsoft.com/free/nsis/version-history.html}}
+\e{For complete version history, see \W{http://www.nullsoft.com/free/nsis/version-history.html}{http://www.nullsoft.com/free/nsis/version-history.html}}
\ No newline at end of file
diff --git a/Docs/src/usefulinfos.but b/Docs/src/usefulinfos.but
index 40d4f8d1..4c566b0c 100644
--- a/Docs/src/usefulinfos.but
+++ b/Docs/src/usefulinfos.but
@@ -63,16 +63,16 @@ Oleaut32.dll \\
Olepro32.dll \\
Stdole2.tlb \\
-In the uninstaller, use \W{http://nsis.sourceforge.net/archive/nsisweb.php?page=19}{un.RemoveSharedDLL} to decrement the shared DLL count, but remove the Delete /REBOOTOK $R1 line, because it's never a good idea to remove the VB runtimes. The system to registering shared DLL files does now always work and many application require these files.
+In the uninstaller, use \R{unremovesharedll}{un.RemoveSharedDLL} to decrement the shared DLL count, but remove the Delete /REBOOTOK $R1 line, because it's never a good idea to remove the VB runtimes. The system to registering shared DLL files does now always work and many application require these files.
\c # Don't forget to copy the macro's!
-\c
+\c
\c !define VBFILESDIR C:\Windows\System
\c # or
\c #!define VBFILESDIR C:\Path\to\where\vbrun60sp5.exe\extracted
-\c
+\c
\c Section "Install VB DLLs"
\c !insertmacro UpgradeDLL ${VBFILESDIR}\Asycfilt.dll $SYSDIR\Asycfilt.dll
\c !insertmacro UpgradeDLL ${VBFILESDIR}\Comcat.dll $SYSDIR\Comcat.dll
@@ -206,9 +206,9 @@ Save this script
\c ; **** snip ****
\c SetPluginUnload alwaysoff
-\c
+\c
\c Function loadDll
-\c
+\c
\c SetOutPath $TEMP\eInspect ; create temp directory
\c File bin\CondMgr.dll ; copy dll there
\c StrCpy $1 ${NSIS_MAX_STRLEN} ; assign memory to $0
@@ -216,10 +216,10 @@ Save this script
\c DetailPrint 'Path: "$0"'
\c DetailPrint "Path length (I think): $1"
\c DetailPrint "Return value: $2"
-\c
-\c ; last plugin call must not have /NOUNLOAD so NSIS will be able to delete
+\c
+\c ; last plugin call must not have /NOUNLOAD so NSIS will be able to delete
\c ; the temporary DLL
-\c
+\c
\c SetPluginUnload manual
\c ; do nothing (but let the installer unload the System dll)
\c System::Free 0
@@ -240,4 +240,68 @@ Written by \W{http://nsis.sourceforge.net/archive/profile.php?userid=78}{djc}
\\Acknowledgements & Thanks\\ \\
Lots of thanks go to \\kichik\\ and \\Sunjammer\\ for spending a lot of time assisting in solving this problem. Also to \\brainsucker\\ for creating the System.dll plug-in in the first place.
-Good Luck!
\ No newline at end of file
+Good Luck!
+
+\H{dumplogtofile} Dump Content of Log Window to File
+
+This function will dump the log of the installer (installer details) to a file of your choice. I created this function for Afrow_UK who requested a way to dump the log to a file in \W{http://forums.winamp.com/showthread.php?s=&threadid=125431}{this forum thread}.
+
+To use it push a file name and call it. It will dump the log to the file specified. For example:
+
+
+\c GetTempFileName $0
+\c Push $0
+\c Call DumpLog
+
+Here is the function:
+
+
+
+\c !define LVM_GETITEMCOUNT 0x1004
+\c !define LVM_GETITEMTEXT 0x102D
+\c
+\c Function DumpLog
+\c Exch $5
+\c Push $0
+\c Push $1
+\c Push $2
+\c Push $3
+\c Push $4
+\c Push $6
+\c
+\c FindWindow $0 "#32770" "" $HWNDPARENT
+\c GetDlgItem $0 $0 1016
+\c StrCmp $0 0 error
+\c FileOpen $5 $5 "w"
+\c StrCmp $5 0 error
+\c SendMessage $0 ${LVM_GETITEMCOUNT} 0 0 $6
+\c System::Alloc ${NSIS_MAX_STRLEN}
+\c Pop $3
+\c StrCpy $2 0
+\c System::Call "*(i, i, i, i, i, i, i, i, i) i \
+\c (0, 0, 0, 0, 0, r3, ${NSIS_MAX_STRLEN}) .r1"
+\c loop: StrCmp $2 $6 done
+\c System::Call "User32::SendMessageA(i, i, i, i) i \
+\c ($0, ${LVM_GETITEMTEXT}, $2, r1)"
+\c System::Call "*$3(&t${NSIS_MAX_STRLEN} .r4)"
+\c FileWrite $5 "$4$\r$\n"
+\c IntOp $2 $2 + 1
+\c Goto loop
+\c done:
+\c FileClose $5
+\c System::Free $1
+\c System::Free $3
+\c Goto exit
+\c error:
+\c MessageBox MB_OK error
+\c exit:
+\c Pop $6
+\c Pop $4
+\c Pop $3
+\c Pop $2
+\c Pop $1
+\c Pop $0
+\c Exch $5
+\c FunctionEnd
+
+written by KiCHiK
\ No newline at end of file
diff --git a/TODO.txt b/TODO.txt
index e0412967..e96eaf52 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -19,10 +19,6 @@ NSIS
* RMDir /REBOOTOK
-DOCUMENTATION
-
-* links should have alternative text instead of Section 1.2.3.4
-
EXAMPLES
* write an advanced paging example showing multiple components page with multiple