diff --git a/test/src/unit-regression.cpp b/test/src/unit-regression.cpp
index 661edc25..414ee71c 100644
--- a/test/src/unit-regression.cpp
+++ b/test/src/unit-regression.cpp
@@ -495,4 +495,19 @@ TEST_CASE("regression tests")
         json j = json::parse("22e2222");
         CHECK(j == json());
     }
+	
+	SECTION("issue #367 - calling stream at EOF")
+	{
+		std::stringstream ss;
+		json j;
+		ss << "123";
+		CHECK_NOTHROW(j << ss);
+
+		// see https://github.com/nlohmann/json/issues/367#issuecomment-262841893:
+		// ss is not at EOF; this yielded an error before the fix
+		// (threw basic_string::append). No, it should just throw
+		// a parse error because of the EOF.
+		CHECK_THROWS_AS(j << ss, std::invalid_argument);
+		CHECK_THROWS_WITH(j << ss, "parse error - unexpected end of input");
+	}
 }