Index: miranda32.dsp
===================================================================
--- miranda32.dsp	(revision 6899)
+++ miranda32.dsp	(working copy)
@@ -45,7 +45,7 @@
 # PROP Ignore_Export_Lib 1
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c
+# ADD CPP /nologo /MD /G4 /Zp4 /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD BASE RSC /l 0x409 /d "NDEBUG"
@@ -55,8 +55,12 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
-# ADD LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../bin/release/miranda32.exe" /fixed /ALIGN:4096 /ignore:4108
+# ADD LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../bin/upload/08/A/miranda32.exe" /fixed /ALIGN:4096 /FILEALIGN:0x200 /ignore:4108
 # SUBTRACT LINK32 /pdb:none /incremental:yes
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=$(COMSPEC) /c "cd ../bin/upload/ && upx --compress-icons=0 --best --lzma --force 08/A/miranda32.exe && md5 -t -s -o08/A/miranda32.exe.md5 08/A/miranda32.exe"
+# End Special Build Tool
 
 !ELSEIF  "$(CFG)" == "miranda32 - Win32 Debug"
 
@@ -72,7 +76,7 @@
 # PROP Ignore_Export_Lib 1
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c
+# ADD CPP /nologo /MDd /G4 /Zp4 /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -100,7 +104,7 @@
 # PROP Ignore_Export_Lib 1
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MD /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /Fr /Yu"../../core/commonheaders.h" /FD /c
-# ADD CPP /nologo /MD /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "UNICODE" /D "_STATIC" /Yu"commonheaders.h" /FD /c
+# ADD CPP /nologo /MD /G4 /Zp4 /W3 /GX /Zi /O1 /I "../include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "UNICODE" /D "_STATIC" /Yu"commonheaders.h" /FD /c
 # SUBTRACT CPP /Fr
 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32
@@ -112,8 +116,12 @@
 LINK32=link.exe
 # ADD BASE LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /machine:I386 /out:"../bin/release/miranda32.exe" /fixed /ALIGN:4096 /ignore:4108
 # SUBTRACT BASE LINK32 /pdb:none /debug
-# ADD LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../bin/Release Unicode/miranda32.exe" /fixed /ALIGN:4096 /ignore:4108
+# ADD LINK32 wsock32.lib comctl32.lib winmm.lib version.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /map /debug /machine:I386 /out:"../bin/upload/08/W/miranda32.exe" /fixed /ALIGN:4096 /FILEALIGN:0x200 /ignore:4108
 # SUBTRACT LINK32 /pdb:none /incremental:yes
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=$(COMSPEC) /c "cd ../bin/upload/ && upx --compress-icons=0 --best --lzma --force 08/W/miranda32.exe && md5 -t -s -o08/W/miranda32.exe.md5 08/W/miranda32.exe"
+# End Special Build Tool
 
 !ELSEIF  "$(CFG)" == "miranda32 - Win32 Debug Unicode"
 
@@ -131,7 +139,7 @@
 # PROP Target_Dir ""
 # ADD BASE CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /Fr /FD /c
 # SUBTRACT BASE CPP /YX
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "UNICODE" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c
+# ADD CPP /nologo /MDd /G4 /Zp4 /W3 /Gm /GX /ZI /Od /I "../include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_NOSDK" /D "UNICODE" /D "_STATIC" /Fr /Yu"commonheaders.h" /FD /c
 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32
 # ADD BASE RSC /l 0x409 /d "_DEBUG"
@@ -389,14 +397,6 @@
 
 # End Source File
 # End Group
-# Begin Group "autoaway"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\modules\autoaway\autoaway.c
-# End Source File
-# End Group
 # Begin Group "button"
 
 # PROP Default_Filter ""
@@ -478,22 +478,6 @@
 SOURCE=.\modules\help\help.c
 # End Source File
 # End Group
-# Begin Group "history"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\modules\history\history.c
-# End Source File
-# End Group
-# Begin Group "idle"
-
-# PROP Default_Filter ""
-# Begin Source File
-
-SOURCE=.\modules\idle\idle.c
-# End Source File
-# End Group
 # Begin Group "ignore"
 
 # PROP Default_Filter ""
@@ -936,6 +920,65 @@
 # End Source File
 # End Group
 # End Group
+# Begin Group "saa"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\extra\saa\aa_utils.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\extra\saa\autoaway.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\extra\saa\dlgproc.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\extra\saa\globals.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\extra\saa\idle.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\extra\saa\idleMenu.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\extra\saa\idleMessages.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\extra\saa\reconnect.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# Begin Source File
+
+SOURCE=..\extra\saa\saamain.c
+# ADD CPP /I "core"
+# SUBTRACT CPP /YX /Yc /Yu
+# End Source File
+# End Group
+# End Group
 # Begin Group "Resources"
 
 # PROP Default_Filter ""
@@ -946,6 +989,7 @@
 # Begin Source File
 
 SOURCE=.\vc6.rc
+# ADD RSC /i "../extra/saa"
 # End Source File
 # End Group
 # End Target
Index: core/modules.c
===================================================================
--- core/modules.c	(revision 6899)
+++ core/modules.c	(working copy)
@@ -104,7 +104,7 @@
 int LoadSkinModule(void);		// ui: skin
 int LoadHelpModule(void);		// ui: help stuff
 int LoadUserInfoModule(void);	// ui: user info
-int LoadHistoryModule(void);	// ui: history viewer
+//int LoadHistoryModule(void);	// ui: history viewer
 int LoadAwayMsgModule(void);	// ui: setting away messages
 int LoadVisibilityModule(void);	// ui: visibility control
 int LoadCLUIModule(void);		// ui: CList UI
@@ -155,7 +155,7 @@
 	if (!disableDefaultModule[DEFMOD_SRAUTH]) if (LoadSendRecvAuthModule()) return 1;
 	if (!disableDefaultModule[DEFMOD_SRFILE]) if (LoadSendRecvFileModule()) return 1;
 	if (!disableDefaultModule[DEFMOD_UIHELP]) if (LoadHelpModule()) return 1;
-	if (!disableDefaultModule[DEFMOD_UIHISTORY]) if (LoadHistoryModule()) return 1;
+//	if (!disableDefaultModule[DEFMOD_UIHISTORY]) if (LoadHistoryModule()) return 1;
 	if (!disableDefaultModule[DEFMOD_RNDIDLE]) if (LoadIdleModule()) return 1;
 	if (!disableDefaultModule[DEFMOD_RNDAUTOAWAY]) if (LoadAutoAwayModule()) return 1;
 	if (!disableDefaultModule[DEFMOD_RNDUSERONLINE]) if (LoadUserOnlineModule()) return 1;
Index: core/miranda.c
===================================================================
--- core/miranda.c	(revision 6899)
+++ core/miranda.c	(working copy)
@@ -544,10 +544,16 @@
 	pVerInfo=mir_alloc(verInfoSize);
 	GetFileVersionInfoA(filename,0,verInfoSize,pVerInfo);
 	VerQueryValueA(pVerInfo,"\\StringFileInfo\\000004b0\\ProductVersion",(void*)&productVersion,&blockSize);
+	lstrcpynA((char*)lParam,productVersion,wParam);
+	unused = strlen((char*)lParam);
+	if (VerQueryValueA(pVerInfo,"\\StringFileInfo\\000004b0\\PrivateBuild",(void*)&productVersion,&blockSize))
+		if (strlen(productVersion))
+			unused += mir_snprintf(( char* )lParam+unused, wParam-unused, " Priv(%s)", productVersion );
+	if (VerQueryValueA(pVerInfo,"\\StringFileInfo\\000004b0\\SpecialBuild",(void*)&productVersion,&blockSize))
+		if (strlen(productVersion))
+			unused += mir_snprintf(( char* )lParam+unused, wParam-unused, " Spec(%s)", productVersion );
 	#if defined( _UNICODE )
-		mir_snprintf(( char* )lParam, wParam, "%s Unicode", productVersion );
-	#else
-		lstrcpynA((char*)lParam,productVersion,wParam);
+		lstrcpynA(( char* )lParam+unused, " Unicode", wParam-unused);
 	#endif
 	mir_free(pVerInfo);
 	return 0;
Index: modules/database/dbtime.c
===================================================================
--- modules/database/dbtime.c	(revision 6899)
+++ modules/database/dbtime.c	(working copy)
@@ -185,7 +185,7 @@
 	int destCharsLeft, dateTimeStrLen;
 
 	//this huge number is the difference between 1970 and 1601 in seconds
-	liFiletime.QuadPart = (11644473600i64+(__int64)(DWORD)TimestampToLocal(wParam,0))*10000000;
+	liFiletime.QuadPart = ((__int64)11644473600+(__int64)(DWORD)TimestampToLocal(wParam,0))*10000000;
 	filetime.dwHighDateTime = liFiletime.HighPart;
 	filetime.dwLowDateTime = liFiletime.LowPart;
 	FileTimeToSystemTime(&filetime,&st);
Index: modules/updatenotify/updatenotify.c
===================================================================
--- modules/updatenotify/updatenotify.c	(revision 6899)
+++ modules/updatenotify/updatenotify.c	(working copy)
@@ -28,10 +28,11 @@
 #define UN_LASTCHECK        "UpdateNotifyLastCheck"
 #define UN_SERVERPERIOD     "UpdateNotifyPingDelayPeriod"
 #define UN_CURRENTVERSION   "UpdateNotifyCurrentVersion"
+#define UN_CURRENTMD5       "UpdateNotifyCurrentMD5"
 #define UN_NOTIFYALPHA      "UpdateNotifyNotifyAlpha"
-#define UN_NOTIFYALPHA_DEF  0
+#define UN_NOTIFYALPHA_DEF  1
 #define UN_CUSTOMURL        "UpdateNotifyCustomURL"
-#define UN_URL              "http://update.miranda-im.org/update.php"
+#define UN_URL              "http://saaplugin.no-ip.info/mirupdate.cgi"
 #define UN_MINCHECKTIME     60*60 /* Check no more than once an hour */
 #define UN_DEFAULTCHECKTIME 60*24*60 /* Default to check once every 24 hours */
 #define UN_FIRSTCHECK       15 /* First check 15 seconds after startup */
@@ -39,6 +40,7 @@
 typedef struct {
     char version[64];
     char downloadUrl[256];
+    char szMD5[33];
 } UpdateNotifyData;
 
 static HANDLE hNetlibUser = 0, hHookModules, hHookPreShutdown;
@@ -137,7 +139,33 @@
 		updateTimerId = SetTimer(NULL, 0, 1000*UN_MINCHECKTIME, UpdateNotifyTimerCheck);
 	}
 }
+void md5_init(mir_md5_state_t *pms);
+void md5_append(mir_md5_state_t *pms, const mir_md5_byte_t *data, int nbytes);
+void md5_finish(mir_md5_state_t *pms, mir_md5_byte_t digest[16]);
 
+static void getMD5(char *target){
+#define BIT 0x4000
+	char filename[MAX_PATH];
+	char *buff=mir_alloc(BIT);
+	FILE *in = NULL;
+	DWORD digest[4];
+	digest[0] = 0;
+	GetModuleFileNameA(NULL,filename,SIZEOF(filename));
+	if (in = fopen(filename, "rb")){
+		mir_md5_state_t state;
+		int len = 0;
+		md5_init(&state);
+		do {
+			len = fread(buff,1,BIT,in);
+			md5_append(&state,buff,len);
+		} while (len==BIT);
+		md5_finish(&state,(unsigned char *)digest);
+		fclose(in);
+	}
+	mir_free(buff);
+	sprintf( target, "%08x%08x%08x%08x", htonl(digest[0]), htonl(digest[1]), htonl(digest[2]), htonl(digest[3]));
+}
+
 static void UpdateNotifyPerform(void *manual) {
 	NETLIBHTTPREQUEST req;
 	NETLIBHTTPREQUEST *resp;
@@ -145,6 +173,7 @@
 	DWORD timeNow = time(NULL);
 	DWORD dwVersion;
 	char szVersion[32], szUrl[256], szVersionText[128];
+	char szMD5[33];
 	int isUnicode, isAlpha, isAlphaBuild;
 	DBVARIANT dbv;
 
@@ -154,14 +183,15 @@
 	isAlpha = DBGetContactSettingByte(NULL, UN_MOD, UN_NOTIFYALPHA, UN_NOTIFYALPHA_DEF);
 	isAlphaBuild = strstr(szVersionText, "alpha") != NULL ? 1 : 0;
 	dwVersion = CallService(MS_SYSTEM_GETVERSION, 0, 0);
+	getMD5(szMD5);
 	mir_snprintf(szVersion, sizeof(szVersion), "%d.%d.%d.%d",
 		HIBYTE(HIWORD(dwVersion)), LOBYTE(HIWORD(dwVersion)),
 		HIBYTE(LOWORD(dwVersion)), LOBYTE(LOWORD(dwVersion)));
 	if (!DBGetContactSettingString(NULL, UN_MOD, UN_CUSTOMURL, &dbv)) {
-		mir_snprintf(szUrl, sizeof(szUrl), "%s?version=%s&unicode=%d&alpha=%d&alphaBuild=%d", dbv.pszVal?dbv.pszVal:UN_URL, szVersion, isUnicode, isAlpha, isAlphaBuild);
+		mir_snprintf(szUrl, sizeof(szUrl), "%s?version=%s&unicode=%d&alpha=%d&alphaBuild=%d&md5sum=%s", dbv.pszVal?dbv.pszVal:UN_URL, szVersion, isUnicode, isAlpha, isAlphaBuild, szMD5);
 		DBFreeVariant(&dbv);
 	}
-	else mir_snprintf(szUrl, sizeof(szUrl), "%s?version=%s&unicode=%d&alpha=%d&alphaBuild=%d", UN_URL, szVersion, isUnicode, isAlpha, isAlphaBuild);
+	else mir_snprintf(szUrl, sizeof(szUrl), "%s?version=%s&unicode=%d&alpha=%d&alphaBuild=%d&md5sum=%s", UN_URL, szVersion, isUnicode, isAlpha, isAlphaBuild, szMD5);
 
 	ZeroMemory(&req, sizeof(req));
 	req.cbSize = sizeof(req);
@@ -169,7 +199,7 @@
 	req.szUrl = szUrl;
 	req.flags = 0;
 	headers[0].szName = "User-Agent";
-	headers[0].szValue = "MirandaUpdate/0.2";
+	headers[0].szValue = "MirandaUpdate/0.3";
 	req.headersCount = 1;
 	req.headers = headers;
 	resp = (NETLIBHTTPREQUEST *)CallService(MS_NETLIB_HTTPTRANSACTION, (WPARAM)hNetlibUser, (LPARAM)&req);
@@ -193,6 +223,10 @@
 					Netlib_Logf(hNetlibUser, "New version found (%s)", resp->headers[i].szValue);
 					mir_snprintf(und.version, sizeof(und.version), "%s", resp->headers[i].szValue);
 				}
+				else if (strcmp(resp->headers[i].szName, "X-Miranda-MD5")==0&&resp->headers[i].szValue) {
+					Netlib_Logf(hNetlibUser, "New MD5 found (%s)", resp->headers[i].szValue);
+					mir_snprintf(und.szMD5, sizeof(und.szMD5), "%s", resp->headers[i].szValue);
+				}
 				else if (strcmp(resp->headers[i].szName, "X-Miranda-Download-URL")==0&&resp->headers[i].szValue) {
 					Netlib_Logf(hNetlibUser, "Download url found (%s)", resp->headers[i].szValue);
 					mir_snprintf(und.downloadUrl, sizeof(und.downloadUrl), "%s", resp->headers[i].szValue);
@@ -210,7 +244,7 @@
 					}
 				}
 			}
-			if (resUpdate&&und.version[0]&&und.downloadUrl[0]) {
+			if (resUpdate&&und.version[0]&&und.downloadUrl[0]&&und.szMD5[0]) {
 				int notify = 1;
 
 				if (!DBGetContactSettingString(NULL, UN_MOD, UN_CURRENTVERSION, &dbv)) {
@@ -218,8 +252,14 @@
 						notify = 0;
 					DBFreeVariant(&dbv);
 				}
+				if (!notify) if (!DBGetContactSettingString(NULL, UN_MOD, UN_CURRENTMD5, &dbv)) {
+					if (!strcmp(dbv.pszVal, und.szMD5)) // already notified of this version, don't show dialog
+						notify = 0;
+					DBFreeVariant(&dbv);
+				}
 				if (notify) {
 					DBWriteContactSettingString(NULL, UN_MOD, UN_CURRENTVERSION, und.version);
+					DBWriteContactSettingString(NULL, UN_MOD, UN_CURRENTMD5, und.szMD5);
 					DialogBoxParam(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_UPDATE_NOTIFY), 0, UpdateNotifyProc,(LPARAM)&und);
 					hwndUpdateDlg = 0;
 				}
Index: modules/netlib/netlibhttpproxy.c
===================================================================
--- modules/netlib/netlibhttpproxy.c	(revision 6899)
+++ modules/netlib/netlibhttpproxy.c	(working copy)
@@ -22,6 +22,7 @@
 */
 #include "commonheaders.h"
 #include "netlib.h"
+#define FILENAME "netlibhttpproxy.c"
 
 #define HTTPGETTIMEOUT   55000  //in ms. http GETs through most proxies will give up after a while so the request needs to be re-sent
 
@@ -34,12 +35,12 @@
 
 	nlc->s=socket(AF_INET,SOCK_STREAM,0);
 	if(nlc->s==INVALID_SOCKET) {
-		Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"socket",WSAGetLastError());
+		Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"socket",WSAGetLastError());
 		return 0;
 	}
 
 	if(connect(nlc->s,(SOCKADDR *)&nlc->sinProxy,sizeof(nlc->sinProxy))==SOCKET_ERROR) {
-		Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"connect",WSAGetLastError());
+		Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"connect",WSAGetLastError());
 		return 0;
 	}
 
@@ -81,7 +82,7 @@
 
 	if (nlc->nlhpi.szHttpGetUrl != NULL) {
 
-		Netlib_Logf(nlc->nlu,"%s %d: Sending data.[ICQ GET] ",__FILE__,__LINE__);
+		Netlib_Logf(nlc->nlu,"%s %d: Sending data.[ICQ GET] ",FILENAME,__LINE__);
 		if(NetlibHttpSendRequest((WPARAM)&nlcSend,(LPARAM)&nlhrSend)==SOCKET_ERROR) {
 			nlc->usingHttpGateway=1;
 			return 0;
@@ -148,7 +149,7 @@
 	nlcSend.hNtlmSecurity=nlc->hNtlmSecurity;
 	nlcSend.s=socket(AF_INET,SOCK_STREAM,0);
 	if(nlcSend.s==INVALID_SOCKET) {
-		Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"socket",WSAGetLastError());
+		Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"socket",WSAGetLastError());
 		return SOCKET_ERROR;
 	}
 	nlcSend.hOkToCloseEvent=CreateEvent(NULL,TRUE,TRUE,NULL);
@@ -157,7 +158,7 @@
 	NetlibInitializeNestedCS(&nlcSend.ncsSend);
 
 	if(connect(nlcSend.s,(SOCKADDR *)&nlc->sinProxy,sizeof(nlc->sinProxy))==SOCKET_ERROR) {
-		Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"connect",WSAGetLastError());
+		Netlib_Logf(nlc->nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"connect",WSAGetLastError());
 		NetlibDeleteNestedCS(&nlcSend.ncsRecv);
 		NetlibDeleteNestedCS(&nlcSend.ncsSend);
 		CloseHandle(nlcSend.hOkToCloseEvent);
@@ -362,7 +363,7 @@
 				nlc->s = INVALID_SOCKET;
 				Sleep(NETLIBHTTP_RETRYTIMEOUT); // wait 5 seconds
 				// retry the connection
-				Netlib_Logf(nlc->nlu,"%s %d: ResultCode?? Doing GET.",__FILE__,__LINE__);
+				Netlib_Logf(nlc->nlu,"%s %d: ResultCode?? Doing GET.",FILENAME,__LINE__);
 				if(HttpGatewaySendGet(nlc))
 					continue;
 				SetLastError(ERROR_GEN_FAILURE);
@@ -385,7 +386,7 @@
 		 *
 		 */
 		if (nlc->nlhpi.szHttpGetUrl != NULL)  {
-			Netlib_Logf(nlc->nlu,"%s %d: Doing GET, Again????",__FILE__,__LINE__);
+			Netlib_Logf(nlc->nlu,"%s %d: Doing GET, Again????",FILENAME,__LINE__);
 
 			if(!HttpGatewaySendGet(nlc)) {
 				NetlibHttpFreeRequestStruct(0,(LPARAM)nlhrReply);
@@ -433,7 +434,7 @@
 	nlhrReply->dataLength = 0;
 	NetlibHttpFreeRequestStruct(0,(LPARAM)nlhrReply);
 
-	Netlib_Logf(nlc->nlu,"%s %d: NetlibHTTPGatewayRecv EXIT!",__FILE__,__LINE__);
+	Netlib_Logf(nlc->nlu,"%s %d: NetlibHTTPGatewayRecv EXIT!",FILENAME,__LINE__);
 	return len;
 }
 
Index: modules/netlib/netlibupnp.c
===================================================================
--- modules/netlib/netlibupnp.c	(revision 6899)
+++ modules/netlib/netlibupnp.c	(working copy)
@@ -22,6 +22,10 @@
 */
 #include "commonheaders.h"
 #include "netlib.h"
+#ifdef __GNUC__
+	#define IP_MULTICAST_IF	2
+	#define IP_TTL              7           /* set/get IP Time To Live          */
+#endif
 
 extern struct NetlibUser **netlibUser;
 extern int netlibUserCount;
Index: modules/netlib/netlibbind.c
===================================================================
--- modules/netlib/netlibbind.c	(revision 6899)
+++ modules/netlib/netlibbind.c	(working copy)
@@ -22,6 +22,7 @@
 */
 #include "commonheaders.h"
 #include "netlib.h"
+#define FILENAME "netlibbind.c"
 
 //mask must be 8192 bytes, returns number of bits set
 #define PortInMask(mask,p)  ((mask)[((p)&0xFFFF)>>3]&(1<<((p)&7)))
@@ -127,7 +128,7 @@
 	nlbp->s=socket(AF_INET,SOCK_STREAM,0);
 	nlbp->pExtra= (nlb->cbSize != NETLIBBIND_SIZEOF_V1) ? nlb->pExtra : NULL;
 	if(nlbp->s==INVALID_SOCKET) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"socket",WSAGetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"socket",WSAGetLastError());
 		mir_free(nlbp);
 		return (int)(HANDLE)NULL;
 	}
@@ -177,20 +178,20 @@
 		/* if ->wPort==0 then they'll get any free port, otherwise they'll
 		be asking for whatever was in nlb->wPort*/
 		if (nlb->wPort!=0) {
-			Netlib_Logf(nlu,"%s %d: trying to bind port %d, this 'feature' can be abused, please be sure you want to allow it.",__FILE__,__LINE__,nlb->wPort);
+			Netlib_Logf(nlu,"%s %d: trying to bind port %d, this 'feature' can be abused, please be sure you want to allow it.",FILENAME,__LINE__,nlb->wPort);
 			sin.sin_port=htons(nlb->wPort);
 		}
 		if(bind(nlbp->s,(SOCKADDR *)&sin,sizeof(sin))==0) foundPort=1;
 	}
 	if(!foundPort) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"bind",WSAGetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"bind",WSAGetLastError());
 		closesocket(nlbp->s);
 		mir_free(nlbp);
 		return (int)(HANDLE)NULL;
 	}
 
 	if(listen(nlbp->s,5)) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"listen",WSAGetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"listen",WSAGetLastError());
 		closesocket(nlbp->s);
 		mir_free(nlbp);
 		return (int)(HANDLE)NULL;
@@ -202,7 +203,7 @@
 		ZeroMemory(&sin,sizeof(sin));
 		len=sizeof(sin);
 		if(getsockname(nlbp->s,(SOCKADDR *)&sin,&len)) {
-			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"getsockname",WSAGetLastError());
+			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"getsockname",WSAGetLastError());
 			closesocket(nlbp->s);
 			mir_free(nlbp);
 			return (int)(HANDLE)NULL;
Index: modules/netlib/netlibopenconn.c
===================================================================
--- modules/netlib/netlibopenconn.c	(revision 6899)
+++ modules/netlib/netlibopenconn.c	(working copy)
@@ -22,6 +22,7 @@
 */
 #include "commonheaders.h"
 #include "netlib.h"
+#define FILENAME "netlibopenconn.c"
 
 extern CRITICAL_SECTION csNetlibUser;
 extern DWORD g_LastConnectionTick; // protected by csNetlibUser
@@ -41,7 +42,7 @@
 	if ( host )
 		return *( u_long* )host->h_addr_list[0];
 
-	Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"gethostbyname",WSAGetLastError());
+	Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"gethostbyname",WSAGetLastError());
 	return 0;
 }
 
@@ -141,14 +142,14 @@
 		len=9+nUserLen;
 	}
 	if(NLSend(nlc,pInit,len,MSG_DUMPPROXY)==SOCKET_ERROR) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLSend",GetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLSend",GetLastError());
 		mir_free(pInit);
 		return 0;
 	}
 	mir_free(pInit);
 
 	if (!RecvUntilTimeout(nlc,reply,SIZEOF(reply),MSG_DUMPPROXY,RECV_DEFAULT_TIMEOUT)) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError());
 		return 0;
 	}
 	if ( reply[1] != 90 ) {
@@ -158,7 +159,7 @@
 			case 93: SetLastError(ERROR_INVALID_ACCESS); break;
 			default: SetLastError(ERROR_INVALID_DATA); break;
 		}
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError());
 		return 0;
 	}
 	//connected
@@ -173,18 +174,18 @@
 	buf[1]=1;  //one auth method
 	buf[2]=nlu->settings.useProxyAuth?2:0;
 	if(NLSend(nlc,buf,3,MSG_DUMPPROXY)==SOCKET_ERROR) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLSend",GetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLSend",GetLastError());
 		return 0;
 	}
 
 	//confirmation of auth method
 	if (!RecvUntilTimeout(nlc,buf,2,MSG_DUMPPROXY,RECV_DEFAULT_TIMEOUT)) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError());
 		return 0;
 	}
 	if((buf[1]!=0 && buf[1]!=2)) {
 		SetLastError(ERROR_INVALID_ID_AUTHORITY);
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLRecv",GetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLRecv",GetLastError());
 		return 0;
 	}
 
@@ -201,19 +202,19 @@
 		pAuthBuf[2+nUserLen]=nPassLen;
 		memcpy(pAuthBuf+3+nUserLen,nlu->settings.szProxyAuthPassword,nPassLen);
 		if(NLSend(nlc,pAuthBuf,3+nUserLen+nPassLen,MSG_DUMPPROXY)==SOCKET_ERROR) {
-			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLSend",GetLastError());
+			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLSend",GetLastError());
 			mir_free(pAuthBuf);
 			return 0;
 		}
 		mir_free(pAuthBuf);
 
 		if (!RecvUntilTimeout(nlc,buf,2,MSG_DUMPPROXY,RECV_DEFAULT_TIMEOUT)) {
-			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError());
+			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError());
 			return 0;
 		}
 		if(buf[1]) {
 			SetLastError(ERROR_ACCESS_DENIED);
-			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError());
+			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError());
 			return 0;
 		}
 	}
@@ -247,7 +248,7 @@
 		}
 		*(PWORD)(pInit+4+nHostLen)=htons(nloc->wPort);
 		if(NLSend(nlc,pInit,6+nHostLen,MSG_DUMPPROXY)==SOCKET_ERROR) {
-			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"NLSend",GetLastError());
+			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"NLSend",GetLastError());
 			mir_free(pInit);
 			return 0;
 		}
@@ -255,7 +256,7 @@
 	}
 
 	if (!RecvUntilTimeout(nlc,buf,5,MSG_DUMPPROXY,RECV_DEFAULT_TIMEOUT)) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError());
 		return 0;
 	}
 
@@ -274,7 +275,7 @@
 				case 8: SetLastError(ERROR_INVALID_ADDRESS); break;
 				default: SetLastError(ERROR_INVALID_DATA); break;
 			}
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"RecvUntilTimeout",GetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"RecvUntilTimeout",GetLastError());
 		return 0;
 	}
 	{
@@ -337,7 +338,7 @@
 	if(nlhrReply==NULL) return 0;
 	if(nlhrReply->resultCode<200 || nlhrReply->resultCode>=300) {
 		NetlibHttpSetLastErrorUsingHttpResult(nlhrReply->resultCode);
-		Netlib_Logf(nlu,"%s %d: %s request failed (%u %s)",__FILE__,__LINE__,nlu->settings.proxyType==PROXYTYPE_HTTP?"HTTP":"HTTPS",nlhrReply->resultCode,nlhrReply->szResultDescr);
+		Netlib_Logf(nlu,"%s %d: %s request failed (%u %s)",FILENAME,__LINE__,nlu->settings.proxyType==PROXYTYPE_HTTP?"HTTP":"HTTPS",nlhrReply->resultCode,nlhrReply->szResultDescr);
 		NetlibHttpFreeRequestStruct(0,(LPARAM)nlhrReply);
 		return 0;
 	}
@@ -479,7 +480,7 @@
 	nlc->nlu=nlu;
 	nlc->s=socket(AF_INET,nloc->flags & NLOCF_UDP ? SOCK_DGRAM : SOCK_STREAM, 0);
 	if(nlc->s==INVALID_SOCKET) {
-		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"socket",WSAGetLastError());
+		Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"socket",WSAGetLastError());
 		mir_free(nlc);
 		return (int)(HANDLE)NULL;
 	}
@@ -543,7 +544,7 @@
 	if(nlc->sinProxy.sin_addr.S_un.S_addr==0
 	   || my_connect(nlc->s,(SOCKADDR *)&nlc->sinProxy,sizeof(nlc->sinProxy), nloc)==SOCKET_ERROR) {
 		if(nlc->sinProxy.sin_addr.S_un.S_addr)
-			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"connect",WSAGetLastError());
+			Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"connect",WSAGetLastError());
 		FreePartiallyInitedConnection(nlc);		
 		return (int)(HANDLE)NULL;
 	}
@@ -597,7 +598,7 @@
 						if(nlc->sinProxy.sin_addr.S_un.S_addr==0
 						   || my_connect(nlc->s,(SOCKADDR *)&nlc->sinProxy,sizeof(nlc->sinProxy), nloc)==SOCKET_ERROR) {
 							if(nlc->sinProxy.sin_addr.S_un.S_addr)
-								Netlib_Logf(nlu,"%s %d: %s() failed (%u)",__FILE__,__LINE__,"connect",WSAGetLastError());
+								Netlib_Logf(nlu,"%s %d: %s() failed (%u)",FILENAME,__LINE__,"connect",WSAGetLastError());
 							FreePartiallyInitedConnection(nlc);
 							return (int)(HANDLE)NULL;
 						}
Index: version.rc
===================================================================
--- version.rc	(revision 6899)
+++ version.rc	(working copy)
@@ -34,7 +34,7 @@
             VALUE "PrivateBuild", "\0"                                        
             VALUE "ProductName", "Miranda IM\0"                               
             VALUE "ProductVersion", "0.8.0 alpha build #4\0"               
-            VALUE "SpecialBuild", "\0"                                        
+            VALUE "SpecialBuild", "YB\0"                                        
         END                                                                   
     END                                                                       
     BLOCK "VarFileInfo"                                                       
Index: resource.rc
===================================================================
--- resource.rc	(revision 6899)
+++ resource.rc	(working copy)
@@ -129,7 +129,7 @@
     EDITTEXT        IDC_BUILDTIME,4,91,146,12,ES_AUTOHSCROLL | ES_READONLY | 
                     NOT WS_BORDER
     PUSHBUTTON      "Credits >",IDC_CONTRIBLINK,5,112,55,14
-    LTEXT           "Version",IDC_VERSION,5,25,150,15
+    LTEXT           "Version",IDC_VERSION,5,25,200,15
     EDITTEXT        IDC_CREDITSFILE,4,44,202,56,ES_CENTER | ES_MULTILINE | 
                     ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_READONLY | NOT 
                     WS_BORDER | WS_VSCROLL
@@ -611,19 +611,6 @@
     PUSHBUTTON      "Cancel",IDCANCEL,201,233,54,14
 END
 
-IDD_HISTORY_FIND DIALOGEX 0, 0, 230, 46
-STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | 
-    WS_SYSMENU
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "Find"
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
-    EDITTEXT        IDC_FINDWHAT,48,11,115,12,ES_AUTOHSCROLL
-    DEFPUSHBUTTON   "&Find Next",IDOK,173,7,50,14
-    PUSHBUTTON      "Cancel",IDCANCEL,173,24,50,14
-    LTEXT           "Find What:",IDC_STATIC,7,13,39,9
-END
-
 IDD_FILESEND DIALOGEX 0, 0, 256, 177
 STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | 
     DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | 
@@ -833,22 +820,6 @@
                     ES_READONLY | WS_VSCROLL
 END
 
-IDD_HISTORY DIALOGEX 0, 0, 296, 166
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | 
-    WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
-EXSTYLE WS_EX_CONTROLPARENT
-CAPTION "Message History"
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
-    DEFPUSHBUTTON   "Close",IDOK,239,144,50,14
-    EDITTEXT        IDC_EDIT,7,83,282,52,ES_MULTILINE | ES_AUTOVSCROLL | 
-                    ES_READONLY | WS_VSCROLL
-    LISTBOX         IDC_LIST,7,7,282,72,LBS_NOINTEGRALHEIGHT | WS_VSCROLL | 
-                    WS_TABSTOP
-    PUSHBUTTON      "&Find...",IDC_FIND,7,144,50,14
-    PUSHBUTTON      "Delete",IDC_DELETEHISTORY,66,144,50,14
-END
-
 IDD_OPT_SOUND DIALOGEX 0, 0, 285, 240
 STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE
 EXSTYLE WS_EX_CONTROLPARENT
@@ -1100,46 +1071,6 @@
                     IDC_STATIC,93,27,167,11,WS_DISABLED
 END
 
-IDD_OPT_IDLE DIALOGEX 0, 0, 312, 190
-STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_BORDER
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
-    CONTROL         "Become idle if the following is left unattended:",
-                    IDC_IDLESHORT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,
-                    18,259,9
-    CONTROL         "Windows",IDC_IDLEONWINDOWS,"Button",BS_AUTORADIOBUTTON,
-                    45,31,104,9
-    CONTROL         "Miranda",IDC_IDLEONMIRANDA,"Button",BS_AUTORADIOBUTTON,
-                    45,43,103,9
-    EDITTEXT        IDC_IDLE1STTIME,59,59,27,14,ES_AUTOHSCROLL | ES_NUMBER
-    CONTROL         "Spin2",IDC_IDLESPIN,"msctls_updown32",UDS_WRAP | 
-                    UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | 
-                    UDS_NOTHOUSANDS | UDS_HOTTRACK,71,55,12,23
-    CONTROL         "Become idle if the screen saver is active",
-                    IDC_SCREENSAVER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,
-                    83,268,9
-    CONTROL         "Become idle if the computer is locked (2000/XP+ only)",
-                    IDC_LOCKED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,99,
-                    249,9
-    CONTROL         "Become idle if a terminal session is disconnected",
-                    IDC_IDLETERMINAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
-                    25,115,265,10
-    CONTROL         "Do not let protocols report any idle information",
-                    IDC_IDLEPRIVATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,25,
-                    131,251,9
-    LTEXT           "minute(s)",IDC_STATIC,91,61,76,9
-    RTEXT           "for",IDC_STATIC,12,59,41,9
-    COMBOBOX        IDC_AASTATUS,128,146,64,50,CBS_DROPDOWNLIST | WS_VSCROLL | 
-                    WS_TABSTOP
-    CONTROL         "Change my status mode to:",IDC_AASHORTIDLE,"Button",
-                    BS_AUTOCHECKBOX | WS_TABSTOP,25,147,101,11
-    CONTROL         "Do not set status back to online when returning from idle",
-                    IDC_IDLESTATUSLOCK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,
-                    35,164,246,10
-    GROUPBOX        "Idle Options",IDC_STATIC,3,3,304,182
-END
-
 IDD_PROFILE_SELECTION DIALOGEX 0, 0, 386, 142
 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_CLIPSIBLINGS | 
     WS_CLIPCHILDREN
@@ -1638,15 +1569,6 @@
         BOTTOMMARGIN, 247
     END
 
-    IDD_HISTORY_FIND, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 223
-        TOPMARGIN, 7
-        BOTTOMMARGIN, 39
-        HORZGUIDE, 17
-    END
-
     IDD_FILESEND, DIALOG
     BEGIN
         LEFTMARGIN, 5
@@ -1701,14 +1623,6 @@
         BOTTOMMARGIN, 135
     END
 
-    IDD_HISTORY, DIALOG
-    BEGIN
-        LEFTMARGIN, 7
-        RIGHTMARGIN, 289
-        TOPMARGIN, 7
-        BOTTOMMARGIN, 158
-    END
-
     IDD_OPT_SOUND, DIALOG
     BEGIN
         LEFTMARGIN, 4
@@ -2028,6 +1942,7 @@
 // Generated from the TEXTINCLUDE 3 resource.
 //
 
+#include "saa-res.rc"
 
 /////////////////////////////////////////////////////////////////////////////
 #endif    // not APSTUDIO_INVOKED
Index: resource.h
===================================================================
--- resource.h	(revision 6899)
+++ resource.h	(working copy)
@@ -1,3 +1,6 @@
+#ifndef _WIN32_IE
+#define _WIN32_IE 0x0501
+#endif
 //{{NO_DEPENDENCIES}}
 // Microsoft Visual C++ generated include file.
 // Used by resource.rc
@@ -21,7 +24,6 @@
 #define IDD_URLRECV                     120
 #define IDD_AUTHREQ                     121
 #define IDD_DETAILS                     125
-#define IDD_HISTORY                     127
 #define IDI_AWAY                        128
 #define IDI_FREE4CHAT                   129
 #define IDI_INVISIBLE                   130
@@ -43,7 +45,6 @@
 #define IDR_CONTEXT                     180
 #define IDR_ICOLIB_CONTEXT              181
 #define IDC_DROP                        183
-#define IDD_HISTORY_FIND                192
 #define IDI_SENDEMAIL                   193
 #define IDD_FILERECV                    194
 #define IDD_PROFILEMANAGER              197
