diff --git a/server/connection.hpp b/server/connection.hpp
index 791de02..cfac5f6 100644
--- a/server/connection.hpp
+++ b/server/connection.hpp
@@ -34,11 +34,12 @@
 #include "request.hpp"
 #include "request_handler.hpp"
 #include "request_parser.hpp"
+
 #include <boost/array.hpp>
 #include <boost/asio.hpp>
-#include <boost/enable_shared_from_this.hpp>
 #include <boost/noncopyable.hpp>
-#include <boost/shared_ptr.hpp>
+
+#include <memory>
 
 namespace http {
 namespace server {
@@ -46,7 +47,7 @@
 class connection_manager;
 
 /// Represents a single connection from a client.
-class connection : public boost::enable_shared_from_this<connection>, private boost::noncopyable
+class connection : public std::enable_shared_from_this<connection>, private boost::noncopyable
 {
 public:
   /// Construct a connection with the given io_service.
@@ -96,7 +97,7 @@
   reply reply_;
 };
 
-typedef boost::shared_ptr<connection> connection_ptr;
+typedef std::shared_ptr<connection> connection_ptr;
 
 } // namespace server
 } // namespace http
diff --git a/server/request_handler.cpp b/server/request_handler.cpp
index d2b339e..1a959a1 100644
--- a/server/request_handler.cpp
+++ b/server/request_handler.cpp
@@ -28,24 +28,27 @@
 //
 
 #include "request_handler.hpp"
-#include "logging.h"
 #include "mime_types.hpp"
 #include "reply.hpp"
 #include "request.hpp"
-#include <boost/lexical_cast.hpp>
-#include <QDataStream>
-#include <QFile>
-#include <QIODevice>
-#include <QString>
+#include "core/logging.hpp"
+
 #include <fstream>
 #include <sstream>
 #include <string>
 
-INIT_LOGGER("HttpServer")
+#include <boost/lexical_cast.hpp>
+
+#include <QDataStream>
+#include <QFile>
+#include <QIODevice>
+#include <QString>
 
 namespace http {
 namespace server {
 
+INIT_LOGGER("HttpServer")
+
 request_handler::request_handler(const std::string& doc_root)
   : doc_root_(doc_root.c_str())
 {
diff --git a/server/server.cpp b/server/server.cpp
index 9ffa4eb..fd91b04 100644
--- a/server/server.cpp
+++ b/server/server.cpp
@@ -28,14 +28,17 @@
 //
 
 #include "server.hpp"
-#include "logging.h"
-#include <boost/bind.hpp>
+#include "core/logging.hpp"
+
 #include <signal.h>
 
-INIT_LOGGER("HttpServer");
 namespace http {
 namespace server {
 
+using namespace ndn::chronoshare;
+
+INIT_LOGGER("HttpServer");
+
 server::server(const std::string& address, const std::string& port, const std::string& doc_root)
   : io_service_()
   ,
@@ -53,7 +56,7 @@
   //#if defined(SIGQUIT)
   //  signals_.add(SIGQUIT);
   //#endif // defined(SIGQUIT)
-  //  signals_.async_wait(boost::bind(&server::handle_stop, this));
+  //  signals_.async_wait(std::bind(&server::handle_stop, this));
 
   // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR).
   boost::asio::ip::tcp::resolver resolver(io_service_);
@@ -89,7 +92,7 @@
 {
   new_connection_.reset(new connection(io_service_, connection_manager_, request_handler_));
   acceptor_.async_accept(new_connection_->socket(),
-                         boost::bind(&server::handle_accept, this, boost::asio::placeholders::error));
+                         std::bind(&server::handle_accept, this, std::placeholders::_1));
 }
 
 void
diff --git a/wscript b/wscript
index 4049598..e0f5c04 100644
--- a/wscript
+++ b/wscript
@@ -122,14 +122,13 @@
     #     )
     Logs.error("fs-watcher compilation is temporary disabled")
 
-    # http_server = bld(
-    #       target = "http_server",
-    #       features = "qt5 cxx",
-    #       source = bld.path.ant_glob(['server/*.cpp']),
-    #       includes = "server src .",
-    #       use = 'BOOST QT5CORE',
-    #       )
-    Logs.error("http_server compilation is temporary disabled")
+    http_server = bld(
+          target = "http_server",
+          features = "qt5 cxx",
+          source = bld.path.ant_glob(['server/*.cpp']),
+          includes = "server src .",
+          use = 'BOOST QT5CORE',
+          )
 
 #     qt = bld(
 #         target = "ChronoShare",
