diff --git a/.waf-tools/boost-kqueue.py b/.waf-tools/boost-kqueue.py
new file mode 100644
index 0000000..a2ec732
--- /dev/null
+++ b/.waf-tools/boost-kqueue.py
@@ -0,0 +1,22 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+#
+# Copyright (c) 2014, Regents of the University of California
+#
+# GPL 3.0 license, see the COPYING.md file for more information
+
+from waflib import Configure
+
+BOOST_ASIO_HAS_KQUEUE_CHECK = '''
+#include <boost/asio.hpp>
+#if defined(BOOST_ASIO_HAS_KQUEUE) and BOOST_VERSION >= 105600
+#error "Ethernet face support cannot be enabled on this platform"
+#endif
+'''
+
+@Configure.conf
+def check_asio_pcap_support(conf):
+    if conf.check_cxx(msg='Checking if Ethernet face support can be enabled',
+                      fragment=BOOST_ASIO_HAS_KQUEUE_CHECK,
+                      features='cxx', use='BOOST', mandatory=False):
+        conf.define('HAVE_ASIO_PCAP_SUPPORT', 1)
+        conf.env['HAVE_ASIO_PCAP_SUPPORT'] = True
diff --git a/tests/daemon/mgmt/face-manager.cpp b/tests/daemon/mgmt/face-manager.cpp
index 601724a..855c7bd 100644
--- a/tests/daemon/mgmt/face-manager.cpp
+++ b/tests/daemon/mgmt/face-manager.cpp
@@ -32,7 +32,10 @@
 #include "fw/face-table.hpp"
 #include "fw/forwarder.hpp"
 #include "face/udp-factory.hpp"
+
+#ifdef HAVE_LIBPCAP
 #include "face/ethernet-factory.hpp"
+#endif // HAVE_LIBPCAP
 
 #include "common.hpp"
 #include "tests/test-common.hpp"
@@ -804,8 +807,7 @@
   BOOST_CHECK_EQUAL(factory->getMulticastFaces().size(), 0);
 }
 
-
-#endif
+#endif // HAVE_LIBPCAP
 
 BOOST_AUTO_TEST_CASE(TestFireInterestFilter)
 {
diff --git a/wscript b/wscript
index ba1c6eb..e985314 100644
--- a/wscript
+++ b/wscript
@@ -34,7 +34,7 @@
 def options(opt):
     opt.load(['compiler_cxx', 'gnu_dirs'])
     opt.load(['boost', 'unix-socket', 'dependency-checker', 'websocket',
-              'default-compiler-flags', 'coverage', 'pch',
+              'default-compiler-flags', 'coverage', 'pch', 'boost-kqueue',
               'doxygen', 'sphinx_build'],
              tooldir=['.waf-tools'])
 
@@ -56,7 +56,7 @@
 
 def configure(conf):
     conf.load(['compiler_cxx', 'gnu_dirs',
-               'default-compiler-flags', 'pch',
+               'default-compiler-flags', 'pch', 'boost-kqueue',
                'boost', 'dependency-checker', 'websocket',
                'doxygen', 'sphinx_build'])
 
@@ -88,9 +88,14 @@
     conf.checkDependency(name='libresolv', lib='resolv', mandatory=False)
 
     if not conf.options.without_libpcap:
-        conf.checkDependency(name='libpcap', lib='pcap', mandatory=True,
-                             errmsg='not found, but required for Ethernet face support. '
-                                    'Specify --without-libpcap to disable Ethernet face support.')
+        conf.check_asio_pcap_support()
+        if conf.env['HAVE_ASIO_PCAP_SUPPORT']:
+            conf.checkDependency(name='libpcap', lib='pcap', mandatory=True,
+                                 errmsg='not found, but required for Ethernet face support. '
+                                        'Specify --without-libpcap to disable Ethernet face support.')
+        else:
+            Logs.warn('Warning: Ethernet face support is not supported on this platform with Boost libraries version 1.56. '
+                      'See http://redmine.named-data.net/issues/1877 for more details')
     if conf.env['HAVE_LIBPCAP']:
         conf.check_cxx(function_name='pcap_set_immediate_mode', header_name='pcap/pcap.h',
                        cxxflags='-Wno-error', use='LIBPCAP', mandatory=False)
