| Index: src/plugin/PluginClass.cpp | 
| =================================================================== | 
| --- a/src/plugin/PluginClass.cpp | 
| +++ b/src/plugin/PluginClass.cpp | 
| @@ -1,6 +1,7 @@ | 
| #include "PluginStdAfx.h" | 
|  | 
| #include "PluginClass.h" | 
| +#include "COM_Value.h" | 
| #include "PluginSettings.h" | 
| #include "PluginSystem.h" | 
| #ifdef SUPPORT_FILTER | 
| @@ -218,11 +219,10 @@ | 
| CComQIPtr<IWebBrowser2> browser = GetBrowser(); | 
| if (browser) | 
| { | 
| -    CComBSTR bstrURL; | 
| - | 
| -    if (SUCCEEDED(browser->get_LocationURL(&bstrURL))) | 
| +    AdblockPlus::COM::BSTR_ParamResult result; | 
| +    if (SUCCEEDED(browser->get_LocationURL(&result))) | 
| { | 
| -      url = bstrURL; | 
| +      url = to_CString(result); | 
| CPluginClient::UnescapeUrl(url); | 
| } | 
| } | 
| @@ -507,14 +507,16 @@ | 
| vFlags.vt = VT_I4; | 
| vFlags.intVal = navOpenInNewTab; | 
|  | 
| -          CComBSTR curLoc; | 
| +          AdblockPlus::COM::BSTR_ParamResult curLoc; | 
| browser->get_LocationURL(&curLoc); | 
| -          HRESULT hr = browser->Navigate(curLoc, &vFlags, NULL, NULL, NULL); | 
| +          std::wstring location = curLoc; | 
| +          AdblockPlus::COM::BSTR_ParamArgument targetLocation(location); | 
| +          HRESULT hr = browser->Navigate(targetLocation, &vFlags, NULL, NULL, NULL); | 
| if (FAILED(hr)) | 
| { | 
| vFlags.intVal = navOpenInNewWindow; | 
|  | 
| -            hr = browser->Navigate(CComBSTR(curLoc), &vFlags, NULL, NULL, NULL); | 
| +            hr = browser->Navigate(targetLocation, &vFlags, NULL, NULL, NULL); | 
| if (FAILED(hr)) | 
| { | 
| DEBUG_ERROR_LOG(hr, PLUGIN_ERROR_NAVIGATION, PLUGIN_ERROR_NAVIGATION, "Navigation::Failed") | 
| @@ -733,10 +735,10 @@ | 
| if (pBrowser) | 
| { | 
| CString url; | 
| -          CComBSTR bstrUrl; | 
| -          if (SUCCEEDED(pBrowser->get_LocationURL(&bstrUrl)) && ::SysStringLen(bstrUrl) > 0) | 
| +          AdblockPlus::COM::BSTR_ParamResult result; | 
| +          if (SUCCEEDED(pBrowser->get_LocationURL(&result)) && !result.operator std::wstring().empty()) | 
| { | 
| -            url = bstrUrl; | 
| +            url = to_CString(result); | 
|  | 
| CPluginClient::UnescapeUrl(url); | 
|  | 
| @@ -1042,8 +1044,7 @@ | 
| vFlags.vt = VT_I4; | 
| vFlags.intVal = navOpenInNewTab; | 
|  | 
| -  CComBSTR navigatePath = CComBSTR(FirstRunPageFileUrl().c_str()); | 
| - | 
| +  AdblockPlus::COM::BSTR_ParamArgument navigatePath(FirstRunPageFileUrl()); | 
| HRESULT hr = GetAsyncBrowser()->Navigate(navigatePath, &vFlags, NULL, NULL, NULL); | 
| if (FAILED(hr)) | 
| { | 
|  |