diff --git a/install/install.iss b/install/install.iss
index 2ca9038817ac869591931084881e11ddc9682402..a3ac4ee4a59c52a87659addf2fd3b2f949fcfe55 100644
--- a/install/install.iss
+++ b/install/install.iss
@@ -2,14 +2,15 @@
 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
 #define MyAppName "Synchronet BBS Software"
-#define MyAppVersion "3.16"
+#define MyAppVersion "3.16c"
 #define MyAppPublisher "Rob Swindell"
 #define MyAppURL "http://www.synchro.net/"
 #define MyAppSupportURL "http://wiki.synchro.net/howto:support"
 #define MyAppDownloadURL "http://www.synchro.net/download.html"
 #define MyAppExeName "sbbsctrl.exe"
 #define sbbsCtrlPanel "Synchronet Control Panel"
-#define release "debug"
+#define release "release"
+#define source "e:"
 
 [Setup]
 ; NOTE: The value of AppId uniquely identifies this application.
@@ -23,75 +24,114 @@ AppPublisher={#MyAppPublisher}
 AppPublisherURL={#MyAppURL}
 AppSupportURL={#MyAppSupportURL}
 AppUpdatesURL={#MyAppDownloadURL}
-DefaultDirName=\sbbs
+AppCopyright=Copyright 2015 {#MyAppPublisher}
+VersionInfoVersion=3.16.2
+AppMutex=sbbs_running,sbbsctrl_running
+DefaultDirName={sd}\sbbs
 DefaultGroupName={#MyAppName}
 DisableProgramGroupPage=yes
 AllowNoIcons=yes
-OutputDir=.
+; OutputDir=.
 OutputBaseFilename=setup
 Compression=lzma
 SolidCompression=yes
 MinVersion = 5.1
-InfoBeforeFile=\stock\docs\install.rtf
+InfoBeforeFile=e:\stock\docs\install.rtf
 ChangesEnvironment=yes
+SourceDir=e:\
+UninstallDisplayIcon="{app}\exec\sbbsctrl.exe"
 
 [Languages]
 Name: "english"; MessagesFile: "compiler:Default.isl"
 
+#define servers_group "TCP/IP Servers"
+#define services_group "TCP and UDP Services"
+#define ntsvcs_group "NT Services (for use by advanced system operators)"
+#define webui_group "Web Interface"
 [Tasks]
 Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
-Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
 Name: "startupicon"; Description: "Create a shortcut in the Startup folder"; GroupDescription: "{cm:AdditionalIcons}";
+Name: "enable_bbs"; Description: "Enable Terminal Server (Telnet, RLogin, and SSH protocols)"; GroupDescription: {#servers_group}
+Name: "enable_mail"; Description: "Enable Mail Server (SMTP and POP3 protocols)"; GroupDescription: {#servers_group}
+Name: "enable_ftp"; Description: "Enable FTP Server (FTP protocol)"; GroupDescription: {#servers_group}
+Name: "enable_web"; Description: "Enable Web Server (HTTP protocol)"; GroupDescription: {#servers_group}
+Name: "enable_svcs"; Description: "Enable Synchronet Services (Finger, Gopher, NNTP, IRC, IMAP, etc.)"; GroupDescription: {#services_group}
+Name: "enable_ntsvcs"; Description: "Enable Synchronet NT services"; GroupDescription: {#ntsvcs_group}; Flags: unchecked
+Name: "enable_sexpots"; Description: "Enable POTS (dial-up modem) support service"; GroupDescription: {#ntsvcs_group}; Flags: unchecked
+name: "web_runemaster"; Description: "Enable Legacy/Runemaster Web Interface"; GroupDescription: {#webui_group}; Flags: exclusive
+name: "web_echicken"; Description: "Enable echicken's Web Interface (ecWeb v3)"; GroupDescription: {#webui_group}; Flags: exclusive unchecked
 
 [Files]
-Source: "\src\sbbs3\ctrl\sbbsctrl.exe";                         DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\src\sbbs3\chat\chat.exe";                             DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\src\sbbs3\useredit\useredit.exe";                     DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\src\sbbs3\msvc.win32.exe.{#release}\*.exe";           DestDir: "{app}\exec";  Flags: ignoreversion; Excludes: "textgen.exe, v4upgrade.exe"
-Source: "\src\sbbs3\msvc.win32.dll.{#release}\*.dll";           DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\src\sbbs3\msvc.win32.dll.release\sbbsexec.dll";       DestDir: "{sys}";
-Source: "\src\sbbs3\scfg\msvc.win32.exe.{#release}\scfg.exe";   DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\src\sbbs3\scfg\msvc.win32.exe.{#release}\scfghelp.*"; DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\3rdp\win32.release\mozjs\bin\mozjs185-1.0.dll";       DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\3rdp\win32.release\cryptlib\bin\cl32.dll";            DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\src\sexpots\Release\sexpots.exe";                     DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "s:\sbbs\exec\user.com";                                DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "s:\sbbs\exec\mlabels.exe";                             DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "s:\sbbs\exec\svdmansi.com";                            DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "src\sbbs3\ctrl\sbbsctrl.exe";                         DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "src\sbbs3\chat\chat.exe";                             DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "src\sbbs3\useredit\useredit.exe";                     DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "src\sbbs3\msvc.win32.exe.{#release}\*.exe";           DestDir: "{app}\exec";  Flags: ignoreversion; Excludes: "textgen.exe, v4upgrade.exe"
+Source: "src\sbbs3\msvc.win32.dll.{#release}\*.dll";           DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "src\sbbs3\msvc.win32.dll.release\sbbsexec.dll";       DestDir: "{sys}";
+Source: "src\sbbs3\scfg\msvc.win32.exe.{#release}\scfg.exe";   DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "3rdp\win32.release\nspr\bin\nspr4.dll";       	       DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "3rdp\win32.release\mozjs\bin\mozjs185-1.0.dll";       DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "3rdp\win32.release\cryptlib\bin\cl32.dll";            DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "src\sexpots\{#release}\sexpots.exe";                     DestDir: "{app}\exec";  Flags: ignoreversion
+Source: "s:\sbbs\exec\user.com";                                DestDir: "{app}\exec";  Flags: ignoreversion; Check: not IsWin64
+Source: "s:\sbbs\exec\mlabels.exe";                             DestDir: "{app}\exec";  Flags: ignoreversion; Check: not IsWin64
+Source: "s:\sbbs\exec\svdmansi.com";                            DestDir: "{app}\exec";  Flags: ignoreversion; Check: not IsWin64
 Source: "s:\sbbs\exec\dosxtrn.exe";                             DestDir: "{app}\exec";  Flags: ignoreversion
-Source: "\stock\node1\node.cnf";                                DestDir: "{app}\node1"; Flags: ignoreversion
-Source: "\stock\node1\node.cnf";                                DestDir: "{app}\node2"; Flags: ignoreversion
-Source: "\stock\node1\node.cnf";                                DestDir: "{app}\node3"; Flags: ignoreversion
-Source: "\stock\node1\node.cnf";                                DestDir: "{app}\node4"; Flags: ignoreversion
-Source: "\stock\exec\*";  DestDir: "{app}\exec";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*,menu.js,menuedit.js,sbbsedit.js,jsdocs.js,testbuild.js,load\menulib.js"
-Source: "\stock\ctrl\*";  DestDir: "{app}\ctrl";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*,*.?.cnf"
-Source: "\stock\text\*";  DestDir: "{app}\text";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*"
-Source: "\stock\xtrn\*";  DestDir: "{app}\xtrn";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*,server.ini"
-Source: "\stock\docs\*";  DestDir: "{app}\docs";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*"
-Source: "\stock\web\*";   DestDir: "{app}\web";   Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*"
-Source: "s:\sbbs\xtrn\sbl\*.exe"; DestDir: "{app}\xtrn\sbl"; Flags: ignoreversion
+Source: "stock\node1\node.cnf";                                DestDir: "{app}\node1"; Flags: ignoreversion
+Source: "stock\node1\node.cnf";                                DestDir: "{app}\node2"; Flags: ignoreversion
+Source: "stock\node1\node.cnf";                                DestDir: "{app}\node3"; Flags: ignoreversion
+Source: "stock\node1\node.cnf";                                DestDir: "{app}\node4"; Flags: ignoreversion
+Source: "stock\exec\*";   DestDir: "{app}\exec";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*,baja.js,menu.js,sbbsedit.js,jsdocs.js,testbuild.js,load\menulib.js"
+Source: "stock\ctrl\*";   DestDir: "{app}\ctrl";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*,*.?.cnf"
+Source: "stock\text\*";   DestDir: "{app}\text";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*"
+Source: "stock\xtrn\*";   DestDir: "{app}\xtrn";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*,server.ini"
+Source: "stock\docs\*";   DestDir: "{app}\docs";  Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*"
+Source: "stock\web\*";    DestDir: "{app}\web";   Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*"
+Source: "stock\web\root\error\*";    DestDir: "{app}\web\root\ecwebv3\error";   Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*"
+Source: "stock\web\root\icons\*";    DestDir: "{app}\web\root\ecwebv3\icons";   Flags: ignoreversion recursesubdirs createallsubdirs; Excludes: "CVS,.#*"
+Source: "s:\sbbs\xtrn\sbl\*.exe";   DestDir: "{app}\xtrn\sbl"; Flags: ignoreversion
 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
 [Icons]
 Name: "{group}\{#sbbsCtrlPanel}"; Filename: "{app}\exec\{#MyAppExeName}"
 Name: "{group}\Synchronet Configuration"; Filename: "{app}\exec\scfg.exe"
-Name: "{group}\Synchronet User Editor"; Filename: "{app}\exec\useredit.exe"
+Name: "{group}\Synchronet User Editor"; Filename: "{app}\exec\useredit.exe"; Parameters: "{app}\data\";
 Name: "{group}\Synchronet Initialization File"; Filename: "{app}\ctrl\sbbs.ini"
 Name: "{group}\Synchronet Documentation"; Filename: "{app}\docs"
 Name: "{group}\Synchronet Web Site"; Filename: "{#MyAppURL}"
 Name: "{group}\Synchronet Support"; Filename: "{#MyAppSupportURL}"
+Name: "{group}\Donate to the Synchronet project"; Filename: "http://wiki.synchro.net/donate"
+Name: "{group}\Get SyncTERM"; Filename: "http://sourceforge.net/projects/syncterm/"
 Name: "{commonstartup}\{#sbbsCtrlPanel}"; Filename: "{app}\exec\{#MyAppExeName}"; Tasks: startupicon
 Name: "{commondesktop}\{#sbbsCtrlPanel}"; Filename: "{app}\exec\{#MyAppExeName}"; Tasks: desktopicon
-Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\exec\{#MyAppExeName}"; Tasks: quicklaunchicon
 
 [Run]
 Filename: "{app}\exec\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Parameters: "{app}\ctrl"; Flags: nowait postinstall skipifsilent
+Filename: "{app}\exec\sbbsNTsvcs.exe"; Parameters: "install"; StatusMsg: "Installing Synchronet NT services"; Tasks: enable_ntsvcs; Flags: runhidden skipifdoesntexist
+Filename: "{app}\exec\sbbsNTsvcs.exe"; Parameters: "enable bbs"; StatusMsg: "Enabling Synchronet NT service: Terminal Server"; Tasks: enable_ntsvcs and enable_bbs; Flags: runhidden skipifdoesntexist
+Filename: "{app}\exec\sbbsNTsvcs.exe"; Parameters: "enable ftp"; StatusMsg: "Enabling Synchronet NT service: FTP Server"; Tasks: enable_ntsvcs and enable_ftp; Flags: runhidden skipifdoesntexist
+Filename: "{app}\exec\sbbsNTsvcs.exe"; Parameters: "enable web"; StatusMsg: "Enabling Synchronet NT service: Web Server"; Tasks: enable_ntsvcs and enable_web; Flags: runhidden skipifdoesntexist
+Filename: "{app}\exec\sbbsNTsvcs.exe"; Parameters: "enable mail"; StatusMsg: "Enabling Synchronet NT service: Mail Server"; Tasks: enable_ntsvcs and enable_mail; Flags: runhidden skipifdoesntexist
+Filename: "{app}\exec\sbbsNTsvcs.exe"; Parameters: "enable services"; StatusMsg: "Enabling Synchronet NT service: Services"; Tasks: enable_ntsvcs and enable_svcs; Flags: runhidden skipifdoesntexist
+Filename: "{app}\exec\sexpots.exe"; Parameters: "-install"; StatusMsg: "Installing external POTS support service"; Tasks: enable_sexpots; Flags: runhidden skipifdoesntexist
+Filename: "{sys}\sc.exe"; Parameters: "start sexpots"; StatusMsg: "Starting external POTS support service"; Tasks: enable_sexpots; Flags: runhidden skipifdoesntexist
+
+[UninstallRun]
+Filename: "{app}\exec\sbbsNTsvcs.exe"; Parameters: "remove"; StatusMsg: "Disabling Synchronet NT services"; Flags: runhidden skipifdoesntexist
+Filename: "{app}\exec\sexpots.exe"; Parameters: "-remove"; StatusMsg: "Disabling external POTS support service"; Flags: runhidden skipifdoesntexist
 
 [Registry]
 Root: HKLM; Subkey: "System\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "SBBSCTRL"; ValueData: "{app}\ctrl"
 
 [INI]
-Filename: "{app}\ctrl\sbbs.ini"; Section: "Global"; Key: "CtrlDirectory"; String: "{app}\ctrl"
+Filename: "{app}\ctrl\sbbs.ini"; Section: "Global";   Key: "CtrlDirectory"; String: "{app}\ctrl"
+Filename: "{app}\ctrl\sbbs.ini"; Section: "BBS";      Key: "AutoStart"; String: "false"; Tasks: not enable_bbs
+Filename: "{app}\ctrl\sbbs.ini"; Section: "Mail";     Key: "AutoStart"; String: "false"; Tasks: not enable_mail
+Filename: "{app}\ctrl\sbbs.ini"; Section: "FTP";      Key: "AutoStart"; String: "false"; Tasks: not enable_ftp
+Filename: "{app}\ctrl\sbbs.ini"; Section: "Web";      Key: "AutoStart"; String: "false"; Tasks: not enable_web
+Filename: "{app}\ctrl\sbbs.ini"; Section: "Services"; Key: "AutoStart"; String: "false"; Tasks: not enable_svcs
+Filename: "{app}\ctrl\sbbs.ini"; Section: "BBS";      Key: "Options"; String: "XTRN_MINIMIZED | SYSOP_AVAILABLE | ALLOW_RLOGIN | ALLOW_SSH | NO_DOS"; Check: IsWin64
+Filename: "{app}\ctrl\sbbs.ini"; Section: "Web";      Key: "RootDirectory"; String: "../web/root/ecwebv3"; Tasks: web_echicken
 
 [Dirs]
 Name: "{app}\data"