Index: TortoiseProc/SVNProgressDlg.cpp
===================================================================
--- TortoiseProc/SVNProgressDlg.cpp	(revision 4159)
+++ TortoiseProc/SVNProgressDlg.cpp	(working copy)
@@ -141,28 +141,28 @@
 	case svn_wc_notify_update_add:
 		m_bMergesAddsDeletesOccurred = true;
 		data->sActionColumnText.LoadString(IDS_SVNACTION_ADD);
-		data->color = CUtils::MyColor(CUtils::MyColors::PURPLE);
+		data->color = CUtils::MyColor(CUtils::PURPLE);
 		break;
 	case svn_wc_notify_commit_added:
 		data->sActionColumnText.LoadString(IDS_SVNACTION_ADDING);
-		data->color = CUtils::MyColor(CUtils::MyColors::PURPLE);
+		data->color = CUtils::MyColor(CUtils::PURPLE);
 		break;
 	case svn_wc_notify_copy:
 		data->sActionColumnText.LoadString(IDS_SVNACTION_COPY);
 		break;
 	case svn_wc_notify_commit_modified:
 		data->sActionColumnText.LoadString(IDS_SVNACTION_MODIFIED);
-		data->color = CUtils::MyColor(CUtils::MyColors::BLUE);
+		data->color = CUtils::MyColor(CUtils::BLUE);
 		break;
 	case svn_wc_notify_delete:
 	case svn_wc_notify_update_delete:
 		data->sActionColumnText.LoadString(IDS_SVNACTION_DELETE);
 		m_bMergesAddsDeletesOccurred = true;
-		data->color = CUtils::MyColor(CUtils::MyColors::BROWN);
+		data->color = CUtils::MyColor(CUtils::BROWN);
 		break;
 	case svn_wc_notify_commit_deleted:
 		data->sActionColumnText.LoadString(IDS_SVNACTION_DELETING);
-		data->color = CUtils::MyColor(CUtils::MyColors::BROWN);
+		data->color = CUtils::MyColor(CUtils::BROWN);
 		break;
 	case svn_wc_notify_restore:
 		data->sActionColumnText.LoadString(IDS_SVNACTION_RESTORE);
@@ -175,7 +175,7 @@
 		break;
 	case svn_wc_notify_commit_replaced:
 		data->sActionColumnText.LoadString(IDS_SVNACTION_REPLACED);
-		data->color = CUtils::MyColor(CUtils::MyColors::BROWN);
+		data->color = CUtils::MyColor(CUtils::BROWN);
 		break;
 	case svn_wc_notify_update_update:
 		// if this is an inoperative dir change, don't show the nofification.
@@ -191,14 +191,14 @@
 		}
 		if ((data->content_state == svn_wc_notify_state_conflicted) || (data->prop_state == svn_wc_notify_state_conflicted))
 		{
-			data->color = CUtils::MyColor(CUtils::MyColors::RED);
+			data->color = CUtils::MyColor(CUtils::RED);
 			data->bConflictedActionItem = true;
 			m_bConflictsOccurred = true;
 			data->sActionColumnText.LoadString(IDS_SVNACTION_CONFLICTED);
 		}
 		else if ((data->content_state == svn_wc_notify_state_merged) || (data->prop_state == svn_wc_notify_state_merged))
 		{
-			data->color = CUtils::MyColor(CUtils::MyColors::GREEN);
+			data->color = CUtils::MyColor(CUtils::GREEN);
 			m_bMergesAddsDeletesOccurred = true;
 			data->sActionColumnText.LoadString(IDS_SVNACTION_MERGED);
 		}
@@ -240,7 +240,7 @@
 				data->bAuxItem = true;
 				data->sActionColumnText.LoadString(IDS_PROGRS_CONFLICTSOCCURED_WARNING);
 				data->sPathColumnText.LoadString(IDS_PROGRS_CONFLICTSOCCURED);
-				data->color = CUtils::MyColor(CUtils::MyColors::RED);
+				data->color = CUtils::MyColor(CUtils::RED);
 				CSoundUtils::PlayTSVNWarning();
 				// This item will now be added after the switch statement
 			}
@@ -513,14 +513,14 @@
 void CSVNProgressDlg::ReportError(const CString& sError)
 {
 	CSoundUtils::PlayTSVNError();
-	ReportString(sError, CString(MAKEINTRESOURCE(IDS_ERR_ERROR)), CUtils::MyColor(CUtils::MyColors::RED));
+	ReportString(sError, CString(MAKEINTRESOURCE(IDS_ERR_ERROR)), CUtils::MyColor(CUtils::RED));
 	m_bErrorsOccurred = true;
 }
 
 void CSVNProgressDlg::ReportWarning(const CString& sWarning)
 {
 	CSoundUtils::PlayTSVNWarning();
-	ReportString(sWarning, CString(MAKEINTRESOURCE(IDS_WARN_WARNING)), CUtils::MyColor(CUtils::MyColors::RED));
+	ReportString(sWarning, CString(MAKEINTRESOURCE(IDS_WARN_WARNING)), CUtils::MyColor(CUtils::RED));
 }
 
 void CSVNProgressDlg::ReportNotification(const CString& sNotification)
Index: TortoiseProc/Utils.cpp
===================================================================
--- TortoiseProc/Utils.cpp	(revision 4159)
+++ TortoiseProc/Utils.cpp	(working copy)
@@ -400,8 +400,8 @@
 			}
 
 			char nValue = '?';
-			char * pszLow = NULL;
-			char * pszHigh = NULL;
+			const char * pszLow = NULL;
+			const char * pszHigh = NULL;
 			pszSource++;
 
 			*pszSource = (char) toupper(*pszSource);
@@ -835,15 +835,15 @@
 	{
 		switch (nIndex)
 		{
-			case MyColors::BLUE:
+			case BLUE:
 				return RGB(0, 50, 160);
-			case MyColors::BROWN:
+			case BROWN:
 				return RGB(100, 0, 0);
-			case MyColors::RED:
+			case RED:
 				return RGB(255, 0, 0);
-			case MyColors::GREEN:
+			case GREEN:
 				return RGB(0, 100, 0);
-			case MyColors::PURPLE:
+			case PURPLE:
 				return RGB(100, 0, 100);
 		}
 	}	
Index: TortoiseProc/LogDlg.cpp
===================================================================
--- TortoiseProc/LogDlg.cpp	(revision 4159)
+++ TortoiseProc/LogDlg.cpp	(working copy)
@@ -1998,7 +1998,7 @@
 		if (m_arShownList.GetCount() > (INT_PTR)pLVCD->nmcd.dwItemSpec)
 		{
 			if (((PLOGENTRYDATA)m_arShownList.GetAt(pLVCD->nmcd.dwItemSpec))->bCopies)
-				crText = CUtils::MyColor(CUtils::MyColors::BLUE);
+				crText = CUtils::MyColor(CUtils::BLUE);
 		}
 		// Store the color back in the NMLVCUSTOMDRAW struct.
 		pLVCD->clrText = crText;
Index: Utils/MyGraph.cpp
===================================================================
--- Utils/MyGraph.cpp	(revision 4159)
+++ Utils/MyGraph.cpp	(working copy)
@@ -316,7 +316,7 @@
 	// This works around the problem of the tip remaining visible when you move 
 	// the mouse to various positions over this control.
 	int nReturn(0);
-	static bTipPopped(false);
+	static bool bTipPopped(false);
 	static CPoint ptPrev(-1,-1);
 
 	if (point != ptPrev) {
Index: Utils/StandAloneDlg.cpp
===================================================================
--- Utils/StandAloneDlg.cpp	(revision 4159)
+++ Utils/StandAloneDlg.cpp	(working copy)
@@ -18,7 +18,7 @@
 //
 #include "stdafx.h"
 #include "StandAloneDlg.h"
-
+/*
 BEGIN_MESSAGE_MAP(CStandAloneDialog, CDialog)
 	ON_WM_PAINT()
 	ON_WM_QUERYDRAGICON()
@@ -28,3 +28,4 @@
 	ON_WM_PAINT()
 	ON_WM_QUERYDRAGICON()
 END_MESSAGE_MAP()
+*/
Index: Utils/NewMenu/NewMenu.cpp
===================================================================
--- Utils/NewMenu/NewMenu.cpp	(revision 4159)
+++ Utils/NewMenu/NewMenu.cpp	(working copy)
@@ -8164,54 +8164,54 @@
   }
   
   AddTheme(new CMenuTheme(CNewMenu::STYLE_ICY,
-                          CNewMenu::MeasureItem_Icy,
-                          CNewMenu::DrawItem_Icy,
-                          CNewMenu::DrawMenuTitle,TRUE));
+                          &CNewMenu::MeasureItem_Icy,
+                          &CNewMenu::DrawItem_Icy,
+                          &CNewMenu::DrawMenuTitle,TRUE));
 
   AddTheme(new CMenuTheme(CNewMenu::STYLE_ICY_NOBORDER,
-                          CNewMenu::MeasureItem_Icy,
-                          CNewMenu::DrawItem_Icy,
-                          CNewMenu::DrawMenuTitle));
+                          &CNewMenu::MeasureItem_Icy,
+                          &CNewMenu::DrawItem_Icy,
+                          &CNewMenu::DrawMenuTitle));
 
   AddTheme(new CMenuTheme(CNewMenu::STYLE_ORIGINAL,
-                          CNewMenu::MeasureItem_OldStyle,
-                          CNewMenu::DrawItem_OldStyle,
-                          CNewMenu::DrawMenuTitle,TRUE));
+                          &CNewMenu::MeasureItem_OldStyle,
+                          &CNewMenu::DrawItem_OldStyle,
+                          &CNewMenu::DrawMenuTitle,TRUE));
 
   AddTheme(new CMenuTheme(CNewMenu::STYLE_ORIGINAL_NOBORDER,
-                          CNewMenu::MeasureItem_OldStyle,
-                          CNewMenu::DrawItem_OldStyle,
-                          CNewMenu::DrawMenuTitle));
+                          &CNewMenu::MeasureItem_OldStyle,
+                          &CNewMenu::DrawItem_OldStyle,
+                          &CNewMenu::DrawMenuTitle));
 
   AddTheme(new CMenuThemeXP(CNewMenu::STYLE_XP,
-                            CNewMenu::MeasureItem_WinXP,
-                            CNewMenu::DrawItem_WinXP,
-                            CNewMenu::DrawMenuTitle,TRUE));
+                            &CNewMenu::MeasureItem_WinXP,
+                            &CNewMenu::DrawItem_WinXP,
+                            &CNewMenu::DrawMenuTitle,TRUE));
 
   AddTheme(new CMenuThemeXP(CNewMenu::STYLE_XP_NOBORDER,
-                            CNewMenu::MeasureItem_WinXP,
-                            CNewMenu::DrawItem_WinXP,
-                            CNewMenu::DrawMenuTitle));
+                            &CNewMenu::MeasureItem_WinXP,
+                            &CNewMenu::DrawItem_WinXP,
+                            &CNewMenu::DrawMenuTitle));
 
   AddTheme(new CMenuThemeXP(CNewMenu::STYLE_XP_2003,
-                            CNewMenu::MeasureItem_WinXP,
-                            CNewMenu::DrawItem_XP_2003,
-                            CNewMenu::DrawMenuTitle,TRUE));
+                            &CNewMenu::MeasureItem_WinXP,
+                            &CNewMenu::DrawItem_XP_2003,
+                            &CNewMenu::DrawMenuTitle,TRUE));
 
   AddTheme(new CMenuThemeXP(CNewMenu::STYLE_XP_2003_NOBORDER,
-                            CNewMenu::MeasureItem_WinXP,
-                            CNewMenu::DrawItem_XP_2003,
-                            CNewMenu::DrawMenuTitle));
+                            &CNewMenu::MeasureItem_WinXP,
+                            &CNewMenu::DrawItem_XP_2003,
+                            &CNewMenu::DrawMenuTitle));
 
   AddTheme(new CMenuTheme(CNewMenu::STYLE_SPECIAL,
-                          CNewMenu::MeasureItem_OldStyle,
-                          CNewMenu::DrawItem_SpecialStyle,
-                          CNewMenu::DrawMenuTitle,TRUE));
+                          &CNewMenu::MeasureItem_OldStyle,
+                          &CNewMenu::DrawItem_SpecialStyle,
+                          &CNewMenu::DrawMenuTitle,TRUE));
 
   AddTheme(new CMenuTheme(CNewMenu::STYLE_SPECIAL_NOBORDER,
-                          CNewMenu::MeasureItem_OldStyle,
-                          CNewMenu::DrawItem_SpecialStyle,
-                          CNewMenu::DrawMenuTitle));
+                          &CNewMenu::MeasureItem_OldStyle,
+                          &CNewMenu::DrawItem_SpecialStyle,
+                          &CNewMenu::DrawMenuTitle));
 
 //  CNewMenu::m_pActMenuDrawing = FindTheme(CNewMenu::STYLE_ORIGINAL);
 //  CNewMenu::m_pActMenuDrawing = FindTheme(CNewMenu::STYLE_ORIGINAL_NOBORDER);
Index: Utils/NewMenu/NewMenu.h
===================================================================
--- Utils/NewMenu/NewMenu.h	(revision 4159)
+++ Utils/NewMenu/NewMenu.h	(working copy)
@@ -638,6 +638,7 @@
 class GUILIBDLLEXPORT CNewFrame : public baseClass
 {
   typedef CNewFrame<baseClass> MyNewFrame;
+  typedef MyNewFrame ThisClass;
 public:
   CNewMenu m_DefaultNewMenu;
   CNewMenu m_SystemNewMenu;
Index: Utils/StandAloneDlg.h
===================================================================
--- Utils/StandAloneDlg.h	(revision 4159)
+++ Utils/StandAloneDlg.h	(working copy)
@@ -107,6 +107,31 @@
 	HICON m_hIcon;
 };
 
+// manually expand the MESSAGE_MAP macros here so we can use templates
+
+template<typename BaseType>
+const AFX_MSGMAP* CStandAloneDialogTmpl<BaseType>::GetMessageMap() const 
+	{ return GetThisMessageMap(); } 
+
+template<typename BaseType>
+const AFX_MSGMAP* PASCAL CStandAloneDialogTmpl<BaseType>::GetThisMessageMap() 
+{ 
+	typedef CStandAloneDialogTmpl<BaseType> ThisClass;						   
+	typedef BaseType TheBaseClass;					   
+	static const AFX_MSGMAP_ENTRY _messageEntries[] =  
+	{
+		ON_WM_PAINT()
+		ON_WM_QUERYDRAGICON()
+
+		{0, 0, 0, 0, AfxSig_end, (AFX_PMSG)0 } 
+	}; 
+
+	static const AFX_MSGMAP messageMap = 
+	{ &TheBaseClass::GetThisMessageMap, &_messageEntries[0] }; 
+
+	return &messageMap; 
+}								  
+
 typedef CStandAloneDialogTmpl<CResizableDialog> CResizableStandAloneDialog;
 typedef CStandAloneDialogTmpl<CDialog> CStandAloneDialog;
 typedef CStandAloneDialogTmpl<CStateDialog> CStateStandAloneDialog;
Index: SVN/TSVNPath.cpp
===================================================================
--- SVN/TSVNPath.cpp	(revision 4159)
+++ SVN/TSVNPath.cpp	(working copy)
@@ -638,7 +638,7 @@
 bool CTSVNPathList::AreAllPathsFiles() const
 {
 	// Look through the vector for any directories - if we find them, return false
-	return std::find_if(m_paths.begin(), m_paths.end(), std::mem_fun_ref(CTSVNPath::IsDirectory)) != m_paths.end();
+	return std::find_if(m_paths.begin(), m_paths.end(), std::mem_fun_ref(&CTSVNPath::IsDirectory)) != m_paths.end();
 }
 
 
Index: SVN/SVNStatusListCtrl.cpp
===================================================================
--- SVN/SVNStatusListCtrl.cpp	(revision 4159)
+++ SVN/SVNStatusListCtrl.cpp	(working copy)
@@ -2284,31 +2284,31 @@
 			case svn_wc_status_added:
 				if (entry->remotestatus > svn_wc_status_unversioned)
 					// locally added file, but file already exists in repository!
-					crText = CUtils::MyColor(CUtils::MyColors::RED);
+					crText = CUtils::MyColor(CUtils::RED);
 				else
-					crText = CUtils::MyColor(CUtils::MyColors::PURPLE);
+					crText = CUtils::MyColor(CUtils::PURPLE);
 				break;
 			case svn_wc_status_missing:
 			case svn_wc_status_deleted:
 			case svn_wc_status_replaced:
-				crText = CUtils::MyColor(CUtils::MyColors::BROWN);
+				crText = CUtils::MyColor(CUtils::BROWN);
 				break;
 			case svn_wc_status_modified:
 				if (entry->remotestatus == svn_wc_status_modified)
 					// indicate a merge (both local and remote changes will require a merge)
-					crText = CUtils::MyColor(CUtils::MyColors::GREEN);
+					crText = CUtils::MyColor(CUtils::GREEN);
 				else if (entry->remotestatus == svn_wc_status_deleted)
 					// locally modified, but already deleted in the repository
-					crText = CUtils::MyColor(CUtils::MyColors::RED);					
+					crText = CUtils::MyColor(CUtils::RED);					
 				else
-					crText = CUtils::MyColor(CUtils::MyColors::BLUE);
+					crText = CUtils::MyColor(CUtils::BLUE);
 				break;
 			case svn_wc_status_merged:
-				crText = CUtils::MyColor(CUtils::MyColors::GREEN);
+				crText = CUtils::MyColor(CUtils::GREEN);
 				break;
 			case svn_wc_status_conflicted:
 			case svn_wc_status_obstructed:
-				crText = CUtils::MyColor(CUtils::MyColors::RED);
+				crText = CUtils::MyColor(CUtils::RED);
 				break;
 			case svn_wc_status_none:
 			case svn_wc_status_unversioned:
Index: TortoiseBlame/Lexer.cpp
===================================================================
--- TortoiseBlame/Lexer.cpp	(revision 4159)
+++ TortoiseBlame/Lexer.cpp	(working copy)
@@ -21,7 +21,7 @@
 void TortoiseBlame::SetupLexer(LPCSTR filename)
 {
 	char line[20];
-	char * lineptr = _tcsrchr(filename, '.');
+	const char * lineptr = _tcsrchr(filename, '.');
 
 	if (lineptr)
 	{


