diff --git a/alethzero/OurWebThreeStubServer.h b/alethzero/OurWebThreeStubServer.h
index 95cf70438..9420a7cac 100644
--- a/alethzero/OurWebThreeStubServer.h
+++ b/alethzero/OurWebThreeStubServer.h
@@ -20,6 +20,7 @@
  */
 
 #include <queue>
+#include <boost/asio.hpp>
 #include <QtCore/QObject>
 #include <libdevcore/Guards.h>
 #include <libethcore/CommonJS.h>
diff --git a/libethereum/EthereumPeer.h b/libethereum/EthereumPeer.h
index 71bfc544f..6f86d7027 100644
--- a/libethereum/EthereumPeer.h
+++ b/libethereum/EthereumPeer.h
@@ -26,6 +26,7 @@
 #include <set>
 #include <memory>
 #include <utility>
+#include <boost/asio.hpp>
 #include <libdevcore/RLP.h>
 #include <libdevcore/Guards.h>
 #include <libdevcore/RangeMask.h>
diff --git a/libp2p/NodeTable.h b/libp2p/NodeTable.h
index 23ca33661..f86675662 100644
--- a/libp2p/NodeTable.h
+++ b/libp2p/NodeTable.h
@@ -23,6 +23,7 @@
 
 #include <algorithm>
 #include <deque>
+#include <boost/asio.hpp>
 #include <boost/integer/static_log2.hpp>
 #include <libp2p/UDP.h>
 #include "Common.h"
diff --git a/libp2p/UDP.h b/libp2p/UDP.h
index 5c3b9362f..ff4c2d1c6 100644
--- a/libp2p/UDP.h
+++ b/libp2p/UDP.h
@@ -26,6 +26,7 @@
 #include <vector>
 #include <deque>
 #include <array>
+#include <boost/asio.hpp>
 #include <libdevcore/Guards.h>
 #include <libdevcrypto/Common.h>
 #include <libdevcrypto/SHA3.h>
diff --git a/libweb3jsonrpc/WebThreeStubServer.cpp b/libweb3jsonrpc/WebThreeStubServer.cpp
index f728a29f5..55788c742 100644
--- a/libweb3jsonrpc/WebThreeStubServer.cpp
+++ b/libweb3jsonrpc/WebThreeStubServer.cpp
@@ -21,6 +21,7 @@
  * @date 2014
  */
 
+#include <boost/asio.hpp>
 #include <boost/filesystem.hpp>
 #include <libwebthree/WebThree.h>
 #include <libdevcrypto/FileSystem.h>
diff --git a/libweb3jsonrpc/WebThreeStubServerBase.cpp b/libweb3jsonrpc/WebThreeStubServerBase.cpp
index 6e0db8b47..7515627d7 100644
--- a/libweb3jsonrpc/WebThreeStubServerBase.cpp
+++ b/libweb3jsonrpc/WebThreeStubServerBase.cpp
@@ -21,6 +21,7 @@
  * @date 2014
  */
 
+#include <boost/asio.hpp>
 #include <libsolidity/CompilerStack.h>
 #include <libsolidity/Scanner.h>
 #include <libsolidity/SourceReferenceFormatter.h>
diff --git a/mix/ClientModel.cpp b/mix/ClientModel.cpp
index 8119ea77a..4df40ae67 100644
--- a/mix/ClientModel.cpp
+++ b/mix/ClientModel.cpp
@@ -18,6 +18,7 @@
  * Ethereum IDE client.
  */
 
+#include <boost/asio.hpp>
 #include <QtConcurrent/QtConcurrent>
 #include <QDebug>
 #include <QQmlContext>
diff --git a/mix/Extension.cpp b/mix/Extension.cpp
index d4a279afa..df97502d4 100644
--- a/mix/Extension.cpp
+++ b/mix/Extension.cpp
@@ -17,13 +17,15 @@
  * Ethereum IDE client.
  */
 
-#include "AppContext.h"
+
 #include <QMessageBox>
 #include <QDebug>
 #include <QQmlApplicationEngine>
+#include <boost/asio.hpp>
 #include <libevm/VM.h>
 #include <libwebthree/WebThree.h>
 #include "Extension.h"
+#include "AppContext.h"
 
 using namespace dev;
 using namespace dev::mix;
diff --git a/test/TestHelper.h b/test/TestHelper.h
index 3707a5fff..0b80273c8 100644
--- a/test/TestHelper.h
+++ b/test/TestHelper.h
@@ -22,6 +22,7 @@
 #pragma once
 
 #include <functional>
+#include <boost/asio.hpp>
 #include <boost/test/unit_test.hpp>
 #include "JsonSpiritHeaders.h"
 #include <libethereum/State.h>
diff --git a/test/checkRandomTest.cpp b/test/checkRandomTest.cpp
index e3442d438..50c3c367d 100644
--- a/test/checkRandomTest.cpp
+++ b/test/checkRandomTest.cpp
@@ -20,6 +20,7 @@
  * Check a random test and return 0/1 for success or failure. To be used for efficiency in the random test simulation.
  */
 
+#include <boost/asio.hpp>
 #include <libdevcore/Common.h>
 #include <libdevcore/Exceptions.h>
 #include <libdevcore/Log.h>
diff --git a/test/createRandomTest.cpp b/test/createRandomTest.cpp
index fa5ed7bd3..da1a028bf 100644
--- a/test/createRandomTest.cpp
+++ b/test/createRandomTest.cpp
@@ -23,6 +23,7 @@
 #include <string>
 #include <iostream>
 #include <chrono>
+#include <boost/asio.hpp>
 #include <boost/random.hpp>
 #include <boost/filesystem/path.hpp>
 #pragma GCC diagnostic ignored "-Wunused-parameter"
diff --git a/test/genesis.cpp b/test/genesis.cpp
index 7ca741ee9..a450b79fc 100644
--- a/test/genesis.cpp
+++ b/test/genesis.cpp
@@ -22,10 +22,14 @@
 
 #include <fstream>
 #include <random>
+
+// Make sure boost/asio.hpp is included before windows.h.
+#include <boost/asio.hpp>
+#include <boost/test/unit_test.hpp>
+
 #include "JsonSpiritHeaders.h"
 #include <libdevcore/CommonIO.h>
 #include <libethereum/CanonBlockChain.h>
-#include <boost/test/unit_test.hpp>
 #include "TestHelper.h"
 
 using namespace std;
diff --git a/test/hexPrefix.cpp b/test/hexPrefix.cpp
index 551983db3..c96e9e98c 100644
--- a/test/hexPrefix.cpp
+++ b/test/hexPrefix.cpp
@@ -21,11 +21,12 @@
  */
 
 #include <fstream>
+#include <boost/asio.hpp>
+#include <boost/test/unit_test.hpp>
 #include "JsonSpiritHeaders.h"
 #include <libdevcore/Log.h>
 #include <libdevcore/CommonIO.h>
 #include <libdevcrypto/TrieCommon.h>
-#include <boost/test/unit_test.hpp>
 #include "TestHelper.h"
 
 using namespace std;
diff --git a/test/net.cpp b/test/net.cpp
index 5039c5436..f842ff1a3 100644
--- a/test/net.cpp
+++ b/test/net.cpp
@@ -19,6 +19,7 @@
  * @date 2014
  */
 
+#include <boost/asio.hpp>
 #include <boost/test/unit_test.hpp>
 #include <libdevcore/Worker.h>
 #include <libdevcrypto/Common.h>
diff --git a/test/rlp.cpp b/test/rlp.cpp
index be098d84d..c67f09665 100644
--- a/test/rlp.cpp
+++ b/test/rlp.cpp
@@ -22,11 +22,12 @@
 
 #include <fstream>
 #include <sstream>
+#include <boost/asio.hpp>
+#include <boost/test/unit_test.hpp>
 #include <libdevcore/Log.h>
 #include <libdevcore/RLP.h>
 #include <libdevcore/Common.h>
 #include <libdevcore/CommonIO.h>
-#include <boost/test/unit_test.hpp>
 #include <algorithm>
 #include "JsonSpiritHeaders.h"
 #include "TestHelper.h"
diff --git a/test/state.cpp b/test/state.cpp
index fe133822a..99fa36fc7 100644
--- a/test/state.cpp
+++ b/test/state.cpp
@@ -20,6 +20,7 @@
  * State test functions.
  */
 
+#include <boost/asio.hpp>
 #include <boost/filesystem/operations.hpp>
 #include <boost/test/unit_test.hpp>
 #include "JsonSpiritHeaders.h"
diff --git a/test/trie.cpp b/test/trie.cpp
index 39a3a59a5..a15713412 100644
--- a/test/trie.cpp
+++ b/test/trie.cpp
@@ -22,12 +22,13 @@
 
 #include <fstream>
 #include <random>
+#include <boost/asio.hpp>
+#include <boost/test/unit_test.hpp>
 #include "JsonSpiritHeaders.h"
 #include <libdevcore/CommonIO.h>
 #include <libdevcrypto/TrieDB.h>
 #include "TrieHash.h"
 #include "MemTrie.h"
-#include <boost/test/unit_test.hpp>
 #include "TestHelper.h"
 
 using namespace std;
diff --git a/test/vm.cpp b/test/vm.cpp
index 16f7385a0..423d55ac8 100644
--- a/test/vm.cpp
+++ b/test/vm.cpp
@@ -21,6 +21,7 @@
  */
 
 #include <chrono>
+#include <boost/asio.hpp>
 #include <boost/filesystem.hpp>
 #include <libethereum/Executive.h>
 #include <libevm/VMFactory.h>
diff --git a/test/vm.h b/test/vm.h
index 0a5b5fb45..ae28213bd 100644
--- a/test/vm.h
+++ b/test/vm.h
@@ -25,6 +25,7 @@ along with cpp-ethereum.  If not, see <http://www.gnu.org/licenses/>.
 
 #include <fstream>
 #include <cstdint>
+#include <boost/asio.hpp>
 #include <boost/test/unit_test.hpp>
 #include <json_spirit/json_spirit.h>
 #include <libdevcore/Log.h>