Index: /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Status/CStatusWindow.cp
===================================================================
--- /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Status/CStatusWindow.cp (revision 143)
+++ /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Status/CStatusWindow.cp (revision 186)
@@ -57,4 +57,7 @@
 BOOL CUTF8StatusBar::SetPaneTextUTF8(int nIndex, const char* utf8, BOOL bUpdate)
 {
+        // Don't call into CWnd code if this thread doesn't own this CWnd
+   	if (!FromHandlePermanent(GetSafeHwnd()))
+		return FALSE;
 #ifdef _UNICODE
 	cdustring utf16(utf8);
@@ -105,4 +108,12 @@
 }
 
+BOOL CUTF8StatusBar::RedrawWindow(LPCRECT lpRectUpdate,
+                                  CRgn* prgnUpdate,
+                                  UINT flags)
+{
+        // Don't call into CWnd code if this thread doesn't own this CWnd
+	return FromHandlePermanent(GetSafeHwnd()) ? CStatusBar::RedrawWindow(lpRectUpdate, prgnUpdate, flags) : FALSE;
+}
+
 // Init status
 void CStatusWindow::InitStatusBar(CUTF8StatusBar* statusBar)
Index: /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Status/CStatusWindow.h
===================================================================
--- /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Status/CStatusWindow.h (revision 143)
+++ /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Status/CStatusWindow.h (revision 186)
@@ -29,5 +29,11 @@
 	CUTF8StatusBar() {}
 	
-	BOOL SetPaneTextUTF8(int nIndex, const char* utf8, BOOL bUpdate = TRUE);
+        BOOL SetPaneTextUTF8(int nIndex, const char* utf8, BOOL bUpdate = TRUE);
+
+        BOOL RedrawWindow(
+                          LPCRECT lpRectUpdate = NULL,
+                          CRgn* prgnUpdate = NULL,
+                          UINT flags = RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE 
+                         );
 };
 
Index: /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Server/Browse_Dialog/CServerBrowseTable.cp
===================================================================
--- /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Server/Browse_Dialog/CServerBrowseTable.cp (revision 143)
+++ /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Application/Server/Browse_Dialog/CServerBrowseTable.cp (revision 186)
@@ -69,5 +69,6 @@
 
 	// Allow multiple selections
-	ModifyStyle(0, LVS_SINGLESEL);
+	if (m_hWnd)
+		ModifyStyle(0, LVS_SINGLESEL);
 }
 
Index: /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Support/Toolbars/CToolbar.cp
===================================================================
--- /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Support/Toolbars/CToolbar.cp (revision 143)
+++ /Mulberry/branches/users/kenneth_porter/FromTrunk/Win32/Sources/Support/Toolbars/CToolbar.cp (revision 186)
@@ -679,6 +679,8 @@
 	
 	// Only if commander available
-	if (GetCommander())
-		cmdui.DoUpdate(GetCommander(), true);
+	CWnd* commander = GetCommander();
+	if (commander)
+		// we recreate the CWnd as we got it from another thread
+		cmdui.DoUpdate(CWnd::FromHandle(commander->GetSafeHwnd()), true);
 	
 	// Check for visibility change tied to enable state
