diff --git a/examples/provider/event_http_server.cc b/examples/provider/event_http_server.cc
index ae8bbec..ae9833e 100644
--- a/examples/provider/event_http_server.cc
+++ b/examples/provider/event_http_server.cc
@@ -34,8 +34,7 @@
 
 class HttpServerImpl::RequestImpl : public Request {
  public:
-  RequestImpl(evhttp_request* req, provider::TaskRunner* task_runner)
-      : task_runner_{task_runner} {
+  RequestImpl(evhttp_request* req) {
     req_.reset(req);
     uri_ = evhttp_request_get_evhttp_uri(req_.get());
 
@@ -70,7 +69,6 @@
  private:
   std::unique_ptr<evhttp_request, decltype(&evhttp_cancel_request)> req_{
       nullptr, &evhttp_cancel_request};
-  provider::TaskRunner* task_runner_{nullptr};
   std::string data_;
   const evhttp_uri* uri_{nullptr};
 };
@@ -147,7 +145,7 @@
 }
 
 void HttpServerImpl::ProcessRequest(evhttp_request* req) {
-  std::unique_ptr<RequestImpl> request{new RequestImpl{req, task_runner_}};
+  std::unique_ptr<RequestImpl> request{new RequestImpl{req}};
   std::string path = request->GetPath();
   auto it = handlers_.find(path);
   if (it != handlers_.end()) {
diff --git a/libweave_common.gypi b/libweave_common.gypi
index e4251d8..e7b45ce 100644
--- a/libweave_common.gypi
+++ b/libweave_common.gypi
@@ -2,6 +2,9 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 {
+  'variables': {
+    'clang%': 0,
+  },
   'target_defaults': {
     'configurations': {
       'Release': {
@@ -58,6 +61,27 @@
       # 'library_dirs' does not work as expected with make files
       '-Lthird_party/lib',
     ],
-    'library_dirs': ['third_party/lib']
+    'library_dirs': ['third_party/lib'],
   },
+  'conditions': [
+     ['clang==1', {
+       'target_defaults': {
+          'cflags!': ['-Wl,--exclude-libs,ALL'],
+          'cflags': [
+            '-fsanitize=address',
+            '-fno-omit-frame-pointer',
+            '-Wno-deprecated-register',
+            '-Wno-inconsistent-missing-override',
+          ],
+          'ldflags': [
+            '-fsanitize=address',
+          ],
+        },
+        'make_global_settings': [
+          ['CC','/usr/bin/clang-3.6'],
+          ['CXX','/usr/bin/clang++-3.6'],
+          ['LINK','/usr/bin/clang++-3.6'],
+        ],
+     }],
+  ]
 }
diff --git a/src/privet/auth_manager_unittest.cc b/src/privet/auth_manager_unittest.cc
index 66ed8da..a571d4f 100644
--- a/src/privet/auth_manager_unittest.cc
+++ b/src/privet/auth_manager_unittest.cc
@@ -70,8 +70,8 @@
   EXPECT_EQ(
       "s3GnCThkQXIzGQoPDlJoiehQiJ5yy4SYUVQzMN2kY0o0OjQ1NjoxNDEwMDAwMDAw",
       Base64Encode(auth_.CreateAccessToken(UserInfo{AuthScope::kOwner, 456})));
-  EXPECT_CALL(clock_, Now())
-      .WillRepeatedly(Return(clock_.Now() + base::TimeDelta::FromDays(11)));
+  auto new_time = clock_.Now() + base::TimeDelta::FromDays(11);
+  EXPECT_CALL(clock_, Now()).WillRepeatedly(Return(new_time));
   EXPECT_EQ(
       "qAmlJykiPTnFljfOKSf3BUII9YZG8/ttzD76q+fII1YyOjM0NToxNDEwOTUwNDAw",
       Base64Encode(auth_.CreateAccessToken(UserInfo{AuthScope::kUser, 345})));
@@ -126,8 +126,8 @@
 }
 
 TEST_F(AuthManagerTest, GetRootClientAuthTokenDifferentTime) {
-  EXPECT_CALL(clock_, Now())
-      .WillRepeatedly(Return(clock_.Now() + base::TimeDelta::FromDays(15)));
+  auto new_time = clock_.Now() + base::TimeDelta::FromDays(15);
+  EXPECT_CALL(clock_, Now()).WillRepeatedly(Return(new_time));
   EXPECT_EQ("UGKqwMYGQNOd8jeYFDOsM02CQgECRgMaVB6rAA==",
             Base64Encode(auth_.GetRootClientAuthToken()));
 }
