diff --git a/src/json.hpp b/src/json.hpp
index 612c7e58..b378c77d 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -43,7 +43,7 @@ SOFTWARE.
 #include <functional> // function, hash, less
 #include <initializer_list> // initializer_list
 #include <iomanip> // hex
-#include <iostream> // istream, ostream
+#include <iosfwd>   // istream, ostream
 #include <iterator> // advance, begin, back_inserter, bidirectional_iterator_tag, distance, end, inserter, iterator, iterator_traits, next, random_access_iterator_tag, reverse_iterator
 #include <limits> // numeric_limits
 #include <locale> // locale
diff --git a/test/src/unit-readme.cpp b/test/src/unit-readme.cpp
index 1b22f1b3..e921c4b6 100644
--- a/test/src/unit-readme.cpp
+++ b/test/src/unit-readme.cpp
@@ -36,6 +36,7 @@ using nlohmann::json;
 #include <list>
 #include <unordered_map>
 #include <unordered_set>
+#include <iostream>
 
 TEST_CASE("README", "[hide]")
 {
diff --git a/test/src/unit-unicode.cpp b/test/src/unit-unicode.cpp
index 9b379d96..e19905d5 100644
--- a/test/src/unit-unicode.cpp
+++ b/test/src/unit-unicode.cpp
@@ -33,6 +33,7 @@ SOFTWARE.
 using nlohmann::json;
 
 #include <fstream>
+#include <iostream>
 
 extern size_t calls;
 size_t calls = 0;