Index: src/ch/ch.cpp
===================================================================
diff -u -N -r1931a815738da9a9cdbc959f4338b2b4aaaac842 -rcbe8851b4ff9b0f235e2c700174370b8884cb844
--- src/ch/ch.cpp	(.../ch.cpp)	(revision 1931a815738da9a9cdbc959f4338b2b4aaaac842)
+++ src/ch/ch.cpp	(.../ch.cpp)	(revision cbe8851b4ff9b0f235e2c700174370b8884cb844)
@@ -41,8 +41,6 @@
 // CCopyHandlerApp
 
 BEGIN_MESSAGE_MAP(CCopyHandlerApp, CWinApp)
-	//{{AFX_MSG_MAP(CCopyHandlerApp)
-	//}}AFX_MSG_MAP
 END_MESSAGE_MAP()
 
 int iCount=98;
@@ -460,8 +458,12 @@
 #endif
 
 	HRESULT hResult = m_tShellExtClient.UnRegisterShellExtDll(strPath);
-	if(FAILED(hResult))
+	if(hResult == TYPE_E_REGISTRYACCESS)
 	{
+		MsgBox(IDS_CHEXT_ALREADY_UNREGISTERED, MB_ICONINFORMATION | MB_OK);
+	}
+	else if(FAILED(hResult))
+	{
 		TCHAR szStr[256];
 		FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, hResult, 0, szStr, 256, NULL);
 		while (szStr[_tcslen(szStr)-1] == _T('\n') || szStr[_tcslen(szStr)-1] == _T('\r') || szStr[_tcslen(szStr)-1] == _T('.'))
@@ -477,20 +479,6 @@
 		MsgBox(IDS_UNREGISTEROK_STRING, MB_ICONINFORMATION | MB_OK);
 }
 
-/*
-bool CCopyHandlerApp::IsShellExtEnabled() const
-{
-	if(m_piShellExtControl)
-	{
-		LONG lFlags = 0;
-		HRESULT hResult = m_piShellExtControl->GetFlags(&lFlags);
-		if(SUCCEEDED(hResult) && (lFlags & eShellExt_Enabled))
-			return true;
-	}
-	return false;
-}
-*/
-
 void CCopyHandlerApp::OnConfigNotify(const chcore::TStringSet& setPropNames)
 {
 	// is this language