diff --git a/dune/common/test/tuplestest.cc b/dune/common/test/tuplestest.cc
index ad20f92e374f74f10893b2eb8ffc1fca2a061abf..f3a8602010248e2a6fd2a7b395d4234a4dc3a2c0 100644
--- a/dune/common/test/tuplestest.cc
+++ b/dune/common/test/tuplestest.cc
@@ -14,6 +14,7 @@
 #include <cstdlib>
 #include <iostream>
 #include <ostream>
+#include <sstream>
 #include <string>
 #include <vector>
 
@@ -249,6 +250,30 @@ int tuple_tr1_test()
   return ret;
 }
 
+int inputTest()
+{
+  typedef std::tuple<int, int, int> Tuple;
+  const std::string data = "1, 2, 3";
+  const Tuple expected{1, 2, 3};
+
+  std::istringstream in(data);
+  Tuple t;
+  in >> t;
+
+  return t == expected ? 0 : 1;
+}
+
+int outputTest()
+{
+  typedef std::tuple<int, int, int> Tuple;
+  const Tuple t{1, 2, 3};
+  const std::string expected = "1, 2, 3";
+
+  std::ostringstream out;
+  out << t;
+
+  return out.str() == expected ? 0 : 1;
+}
 
 int main(int, char**)
 {
@@ -259,6 +284,6 @@ int main(int, char**)
   test(static_cast<tuple<float,int,double,char,std::string>& >(tuple_));
   test(static_cast<const tuple<float,int,double,char,std::string>&>(tuple_));
   return (copyTest()+iteratorTupleTest()+referenceTest()+lessTest()
-          +pointerTest()+constPointerTest()+tuple_tr1_test());
+          +pointerTest()+constPointerTest()+tuple_tr1_test()+inputTest()+outputTest());
 
 }