Index: src/FilterEngine.cpp
===================================================================
--- a/src/FilterEngine.cpp
+++ b/src/FilterEngine.cpp
@@ -69,17 +69,17 @@
 void Filter::RemoveFromList()
 {
   JsValuePtr func = jsEngine->Evaluate("API.removeFilterFromList");
   func->Call(*this);
 }
 
 bool Filter::operator==(const Filter& filter) const
 {
-  return GetProperty("text")->AsString() == filter.GetProperty("text")->AsString();
+  return GetProperty("text").AsString() == filter.GetProperty("text").AsString();
 }
 
 Subscription::Subscription(JsValue&& value)
     : JsValue(std::move(value))
 {
   if (!IsObject())
     throw std::runtime_error("JavaScript value is not an object");
 }
@@ -116,17 +116,17 @@
 
 bool Subscription::IsAA() const
 {
   return jsEngine->Evaluate("API.isAASubscription")->Call(*this).AsBool();
 }
 
 bool Subscription::operator==(const Subscription& subscription) const
 {
-  return GetProperty("url")->AsString() == subscription.GetProperty("url")->AsString();
+  return GetProperty("url").AsString() == subscription.GetProperty("url").AsString();
 }
 
 namespace
 {
   class Sync
   {
   public:
     Sync()
@@ -196,19 +196,19 @@
   // until we are done.
   const JsContext context(jsEngine);
 
   // Set the preconfigured prefs
   JsValuePtr preconfiguredPrefsObject = jsEngine->NewObject();
   for (FilterEngine::Prefs::const_iterator it = params.preconfiguredPrefs.begin();
     it != params.preconfiguredPrefs.end(); it++)
   {
-    preconfiguredPrefsObject->SetProperty(it->first, it->second);
+    preconfiguredPrefsObject->SetProperty(it->first, *it->second);
   }
-  jsEngine->SetGlobalProperty("_preconfiguredPrefs", preconfiguredPrefsObject);
+  jsEngine->SetGlobalProperty("_preconfiguredPrefs", *preconfiguredPrefsObject);
   // Load adblockplus scripts
   for (int i = 0; !jsSources[i].empty(); i += 2)
     jsEngine->Evaluate(jsSources[i + 1], jsSources[i]);
 }
 
 FilterEnginePtr FilterEngine::Create(const JsEnginePtr& jsEngine,
   const FilterEngine::CreationParameters& params)
 {
