Index: src/ch/MainWnd.cpp
===================================================================
diff -u -r306fbe693c70290af9de9a5779084a697de22d75 -r09cedb80782a75d4b4896a1f3d2dd535688bf840
--- src/ch/MainWnd.cpp	(.../MainWnd.cpp)	(revision 306fbe693c70290af9de9a5779084a697de22d75)
+++ src/ch/MainWnd.cpp	(.../MainWnd.cpp)	(revision 09cedb80782a75d4b4896a1f3d2dd535688bf840)
@@ -41,7 +41,6 @@
 #include "FeedbackHandlerFactory.h"
 #include "../libchcore/TTask.h"
 #include "TTaskManagerWrapper.h"
-#include "shortcuts.h"
 #include "CfgProperties.h"
 #include "resource.h"
 
Index: src/ch/TWindowMessageFilterHelper.cpp
===================================================================
diff -u
--- src/ch/TWindowMessageFilterHelper.cpp	(revision 0)
+++ src/ch/TWindowMessageFilterHelper.cpp	(revision 09cedb80782a75d4b4896a1f3d2dd535688bf840)
@@ -0,0 +1,46 @@
+// ============================================================================
+//  Copyright (C) 2001-2016 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#include "stdafx.h"
+#include "TWindowMessageFilterHelper.h"
+#include "WindowsVersion.h"
+
+typedef WINUSERAPI BOOL(WINAPI *ChangeWindowMessageFilterProc)(UINT message, DWORD dwFlag);
+
+bool TWindowMessageHelper::AllowToReceiveCopyDataMessages()
+{
+	if(WindowsVersion::IsWindowsXP())
+		return true;
+
+	HMODULE hMod = LoadLibrary(L"User32.dll");
+	if(!hMod)
+		return false;
+
+	ChangeWindowMessageFilterProc ChangeWindowMessageFilter = (ChangeWindowMessageFilterProc)GetProcAddress(hMod, "ChangeWindowMessageFilter");
+	if(!ChangeWindowMessageFilter)
+	{
+		FreeLibrary(hMod);
+		return false;
+	}
+
+	BOOL bResult = ChangeWindowMessageFilter(WM_COPYDATA, /*MSGFLT_ADD*/1);
+
+	FreeLibrary(hMod);
+
+	return bResult != false;
+}
Index: src/ch/TWindowMessageFilterHelper.h
===================================================================
diff -u
--- src/ch/TWindowMessageFilterHelper.h	(revision 0)
+++ src/ch/TWindowMessageFilterHelper.h	(revision 09cedb80782a75d4b4896a1f3d2dd535688bf840)
@@ -0,0 +1,28 @@
+// ============================================================================
+//  Copyright (C) 2001-2016 by Jozef Starosczyk
+//  ixen@copyhandler.com
+//
+//  This program is free software; you can redistribute it and/or modify
+//  it under the terms of the GNU Library General Public License
+//  (version 2) as published by the Free Software Foundation;
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU Library General Public
+//  License along with this program; if not, write to the
+//  Free Software Foundation, Inc.,
+//  59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// ============================================================================
+#ifndef __TWINDOWMESSAGEFILTERHELPER_H__
+#define __TWINDOWMESSAGEFILTERHELPER_H__
+
+class TWindowMessageHelper
+{
+public:
+	static bool AllowToReceiveCopyDataMessages();
+};
+
+#endif
Index: src/ch/ch.cpp
===================================================================
diff -u -r306fbe693c70290af9de9a5779084a697de22d75 -r09cedb80782a75d4b4896a1f3d2dd535688bf840
--- src/ch/ch.cpp	(.../ch.cpp)	(revision 306fbe693c70290af9de9a5779084a697de22d75)
+++ src/ch/ch.cpp	(.../ch.cpp)	(revision 09cedb80782a75d4b4896a1f3d2dd535688bf840)
@@ -44,6 +44,7 @@
 #include "resource.h"
 #include "../liblogger/TLogger.h"
 #include "../liblogger/TAsyncMultiLogger.h"
+#include "TWindowMessageFilterHelper.h"
 
 #ifdef _DEBUG
 #define new DEBUG_NEW
@@ -487,6 +488,11 @@
 		LOG_ERROR(m_spLog) << L"Failed to initialize shell extension configuration. Shell extension will be inactive. Error: " << e.what();
 	}
 
+	// ================================= User Interface Privilege Isolation =================
+	LOG_INFO(m_spLog) << _T("Enabling communication between non-admin explorer and admin Copy Handler");
+	if(!TWindowMessageHelper::AllowToReceiveCopyDataMessages())
+		LOG_WARNING(m_spLog) << _T("Failed to enable communication between non-admin explorer and admin Copy Handler");
+
 	// ================================= Main window ========================================
 	LOG_INFO(m_spLog) << _T("Creating main application window");
 	// create main window
Index: src/ch/ch.vc140.vcxproj
===================================================================
diff -u -r306fbe693c70290af9de9a5779084a697de22d75 -r09cedb80782a75d4b4896a1f3d2dd535688bf840
--- src/ch/ch.vc140.vcxproj	(.../ch.vc140.vcxproj)	(revision 306fbe693c70290af9de9a5779084a697de22d75)
+++ src/ch/ch.vc140.vcxproj	(.../ch.vc140.vcxproj)	(revision 09cedb80782a75d4b4896a1f3d2dd535688bf840)
@@ -540,6 +540,7 @@
     <ClInclude Include="TRegistry.h" />
     <ClInclude Include="TShellExtensionConfig.h" />
     <ClInclude Include="TTaskManagerWrapper.h" />
+    <ClInclude Include="TWindowMessageFilterHelper.h" />
     <ClInclude Include="UpdateChecker.h" />
     <ClInclude Include="ch.h" />
     <ClInclude Include="stdafx.h" />
@@ -791,6 +792,7 @@
     <ClCompile Include="TRegistry.cpp" />
     <ClCompile Include="TShellExtensionConfig.cpp" />
     <ClCompile Include="TTaskManagerWrapper.cpp" />
+    <ClCompile Include="TWindowMessageFilterHelper.cpp" />
     <ClCompile Include="UpdateChecker.cpp" />
     <ClCompile Include="ch.cpp" />
     <ClCompile Include="stdafx.cpp">
Index: src/ch/ch.vc140.vcxproj.filters
===================================================================
diff -u -r306fbe693c70290af9de9a5779084a697de22d75 -r09cedb80782a75d4b4896a1f3d2dd535688bf840
--- src/ch/ch.vc140.vcxproj.filters	(.../ch.vc140.vcxproj.filters)	(revision 306fbe693c70290af9de9a5779084a697de22d75)
+++ src/ch/ch.vc140.vcxproj.filters	(.../ch.vc140.vcxproj.filters)	(revision 09cedb80782a75d4b4896a1f3d2dd535688bf840)
@@ -248,6 +248,9 @@
     <ClInclude Include="TShellExtensionConfig.h">
       <Filter>Source Files\Tools</Filter>
     </ClInclude>
+    <ClInclude Include="TWindowMessageFilterHelper.h">
+      <Filter>Source Files\Tools</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\common\TShellExtMenuConfig.cpp">
@@ -424,6 +427,9 @@
     <ClCompile Include="TShellExtensionConfig.cpp">
       <Filter>Source Files\Tools</Filter>
     </ClCompile>
+    <ClCompile Include="TWindowMessageFilterHelper.cpp">
+      <Filter>Source Files\Tools</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <None Include="res\ch.rc2">