Index: src/ch/TShellExtensionClient.cpp
===================================================================
diff -u -N -rbfa621d15810c821a147b2499926996b158b6444 -r1716e3b1c975937ae6f9583f91e8940d5bc855a2
--- src/ch/TShellExtensionClient.cpp	(.../TShellExtensionClient.cpp)	(revision bfa621d15810c821a147b2499926996b158b6444)
+++ src/ch/TShellExtensionClient.cpp	(.../TShellExtensionClient.cpp)	(revision 1716e3b1c975937ae6f9583f91e8940d5bc855a2)
@@ -114,10 +114,9 @@
 	}
 
 	if(SUCCEEDED(hResult))
+	{
 		SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, NULL, NULL);
 
-	if(SUCCEEDED(hResult))
-	{
 		// NOTE: we are re-trying to enable the shell extension through our notification interface
 		// in case of class-not-registered error because (it seems) system needs some time to process
 		// DLL's self registration and usually the first call fails.
@@ -214,12 +213,11 @@
 	if(SUCCEEDED(hResult))
 	{
 		// enable or disable extension - currently we only support extension from strictly the same version as CH
-		hResult = m_piShellExtControl->SetFlags((lClientVersion == rlExtensionVersion) ? eShellExt_Enabled : 0, eShellExt_Enabled);
+		bool bVersionMatches = (lClientVersion == rlExtensionVersion);
+		hResult = m_piShellExtControl->SetFlags(bVersionMatches ? eShellExt_Enabled : 0, eShellExt_Enabled);
 		if(SUCCEEDED(hResult))
-			hResult = S_OK;
+			hResult = bVersionMatches ? S_OK : S_FALSE;
 	}
-	else if(SUCCEEDED(hResult))
-		hResult = S_FALSE;
 
 	// do not overwrite S_OK/S_FALSE status after this line - it needs to be propagated upwards
 	if(bstrVersion)
Index: src/ch/ch.rc
===================================================================
diff -u -N -ref0341282095cec2957225e031580d0c0bbaa5f6 -r1716e3b1c975937ae6f9583f91e8940d5bc855a2
--- src/ch/ch.rc	(.../ch.rc)	(revision ef0341282095cec2957225e031580d0c0bbaa5f6)
+++ src/ch/ch.rc	(.../ch.rc)	(revision 1716e3b1c975937ae6f9583f91e8940d5bc855a2)
@@ -1106,11 +1106,11 @@
     IDS_UPDATER_WAITING_STRING 
                             "Please wait for the connection with %site to be established..."
     IDS_SHELL_EXTENSION_MISMATCH_STRING 
-                            "Copy Handler encountered incompatible version of component enabling integration with system installed on your system.\nWould you like to update it now (requires administrative rights)?"
+                            "Copy Handler detected an incompatible version of Shell Extension component.\nWould you like to update it now (requires administrative rights)?"
     IDS_SHELL_EXTENSION_UNREGISTERED_STRING 
-                            "Copy Handler's component enabling integration with system is disabled.\nDo you want to enable it now (requires administrative rights)?"
+                            "Copy Handler detected that Shell Extension component is not enabled.\nDo you want to enable it now (requires administrative rights)?"
     IDS_SHELL_EXTENSION_REGISTERED_MISMATCH_STRING 
-                            "Copy Handler's component enabling integration with system was updated.\nPlease reboot your system for changes to take effect."
+                            "Copy Handler registered new Shell Extension component, but the old one is still in use by system.\nPlease reboot your system for changes to take effect."
     IDS_CH_PORTABLE_STRING  " (portable mode)"
     IDS_TASK_IMPORT_FAILED  "Failed to import task '%path'."
     IDS_TASK_CREATE_FAILED  "Cannot create new task. Reason: %reason."