diff --git a/dune/solvers/Makefile.am b/dune/solvers/Makefile.am
index 5031b12ecd926c750e2e6ca9194712f5987e6f69..eca20b37d7adabd19e526eb9ddcd58a60e2899ae 100644
--- a/dune/solvers/Makefile.am
+++ b/dune/solvers/Makefile.am
@@ -2,6 +2,6 @@
 SUBDIRS = common iterationsteps norms solvers transferoperators
 
 dune_solversdir = $(includedir)/dune/dune-solvers
-dune_solvers_HEADERS = boxconstraint.hh numproc.hh computeenergy.hh genericvectortools.hh
+dune_solvers_HEADERS = computeenergy.hh
 
 include $(top_srcdir)/am/global-rules
diff --git a/dune/solvers/common/Makefile.am b/dune/solvers/common/Makefile.am
index d5bd877741a51ca6fbc8f0a1b3cab5ca98bb49f3..dfea333edd803387ec7bc2987faa68ded29c5428 100644
--- a/dune/solvers/common/Makefile.am
+++ b/dune/solvers/common/Makefile.am
@@ -1,7 +1,10 @@
 SUBDIRS =
 
 commondir = $(includedir)/dune/dune-solvers/common
-common_HEADERS = canignore.hh \
+common_HEADERS = boxconstraint.hh \
+                 genericvectortools.hh \
+                 canignore.hh \
+                 numproc.hh \
                  permutationmanager.hh \
                  preconditioner.hh \
                  staticmatrixtools.hh
diff --git a/dune/solvers/boxconstraint.hh b/dune/solvers/common/boxconstraint.hh
similarity index 100%
rename from dune/solvers/boxconstraint.hh
rename to dune/solvers/common/boxconstraint.hh
diff --git a/dune/solvers/genericvectortools.hh b/dune/solvers/common/genericvectortools.hh
similarity index 100%
rename from dune/solvers/genericvectortools.hh
rename to dune/solvers/common/genericvectortools.hh
diff --git a/dune/solvers/numproc.hh b/dune/solvers/common/numproc.hh
similarity index 100%
rename from dune/solvers/numproc.hh
rename to dune/solvers/common/numproc.hh
diff --git a/dune/solvers/common/preconditioner.hh b/dune/solvers/common/preconditioner.hh
index d5a28c7851fef451bc748707ec1e9b853dde86c3..8daa09d7b1838737e87a00cfe8ee9c7bb269f172 100644
--- a/dune/solvers/common/preconditioner.hh
+++ b/dune/solvers/common/preconditioner.hh
@@ -1,7 +1,7 @@
 #ifndef PRECONDITIONER_HH
 #define PRECONDITIONER_HH
 
-#include <dune/solvers/numproc.hh>
+#include <dune/solvers/common/numproc.hh>
 
 /** \brief Abstract base class for preconditioners
  */
diff --git a/dune/solvers/iterationsteps/iterationstep.hh b/dune/solvers/iterationsteps/iterationstep.hh
index c63337940da5949a868e990ae2fc2ffff7db566b..74e60776507529f45cb96b22d0961f4051fdf4fd 100644
--- a/dune/solvers/iterationsteps/iterationstep.hh
+++ b/dune/solvers/iterationsteps/iterationstep.hh
@@ -6,7 +6,7 @@
 
 #include <dune/common/bitsetvector.hh>
 #include <dune/solvers/common/canignore.hh>
-#include <dune/solvers/numproc.hh>
+#include <dune/solvers/common/numproc.hh>
 
     //! Base class for iteration steps being called by an iterative solver
 template<class VectorType, class BitVectorType = Dune::BitSetVector<VectorType::block_type::dimension> >
diff --git a/dune/solvers/iterationsteps/mmgstep.hh b/dune/solvers/iterationsteps/mmgstep.hh
index fc519913dc2a809903d43a12ecf554a5cedda343..add3f7e42c4308bbbdd203888f3013169c75b292 100644
--- a/dune/solvers/iterationsteps/mmgstep.hh
+++ b/dune/solvers/iterationsteps/mmgstep.hh
@@ -5,7 +5,7 @@
 #include <dune/solvers/iterationsteps/projectedblockgsstep.hh>
 #include <dune/solvers/transferoperators/multigridtransfer.hh>
 
-#include <dune/solvers/boxconstraint.hh>
+#include <dune/solvers/common/boxconstraint.hh>
 #include <dune/solvers/transferoperators/obstaclerestrictor.hh>
 
 /** \brief The general monotone multigrid solver
diff --git a/dune/solvers/iterationsteps/multigridstep.cc b/dune/solvers/iterationsteps/multigridstep.cc
index 4953fddd587c28ece1fba4c68c772ba5454e7b6d..394acdb99853f63ab5e8fb0697c04b28b849288e 100644
--- a/dune/solvers/iterationsteps/multigridstep.cc
+++ b/dune/solvers/iterationsteps/multigridstep.cc
@@ -2,7 +2,7 @@
 
 #include <dune/solvers/transferoperators/multigridtransfer.hh>
 #include <dune/solvers/solvers/loopsolver.hh>
-#include <dune/solvers/genericvectortools.hh>
+#include <dune/solvers/common/genericvectortools.hh>
 #include "blockgsstep.hh"
 
 #ifdef HAVE_IPOPT
diff --git a/dune/solvers/iterationsteps/projectedblockgsstep.hh b/dune/solvers/iterationsteps/projectedblockgsstep.hh
index 6a8d91cc5d4189641d5a3262fd37ba4f9d94540d..58f7419eb54916c45a16a2335be22f2da5733d25 100644
--- a/dune/solvers/iterationsteps/projectedblockgsstep.hh
+++ b/dune/solvers/iterationsteps/projectedblockgsstep.hh
@@ -4,7 +4,7 @@
 #include <vector>
 
 #include "blockgsstep.hh"
-#include <dune/solvers/boxconstraint.hh>
+#include <dune/solvers/common/boxconstraint.hh>
 
 template<class OperatorType, class DiscFuncType>
 class ProjectedBlockGSStep : public BlockGSStep<OperatorType, DiscFuncType>
diff --git a/dune/solvers/iterationsteps/projectedlinegsstep.hh b/dune/solvers/iterationsteps/projectedlinegsstep.hh
index 2cd0c74bd8f91e3a00586ae0d9947c3ecf229f68..d9a3e196cc1ee611bb06deec96ae542ff41855d1 100755
--- a/dune/solvers/iterationsteps/projectedlinegsstep.hh
+++ b/dune/solvers/iterationsteps/projectedlinegsstep.hh
@@ -5,7 +5,7 @@
 
 #include <dune/istl/btdmatrix.hh>
 
-#include <dune/solvers/boxconstraint.hh>
+#include <dune/solvers/common/boxconstraint.hh>
 #include <dune/solvers/iterationsteps/linegsstep.hh>
 
 template<class MatrixType,
diff --git a/dune/solvers/iterationsteps/trustregiongsstep.hh b/dune/solvers/iterationsteps/trustregiongsstep.hh
index df59a2737c4b3a115a509ed5e730dbb011ec005c..533ba8e53c3acf4d63abb9dc22007e483908dfe7 100644
--- a/dune/solvers/iterationsteps/trustregiongsstep.hh
+++ b/dune/solvers/iterationsteps/trustregiongsstep.hh
@@ -7,7 +7,7 @@
 */
 
 #include "projectedblockgsstep.hh"
-#include <dune/solvers/boxconstraint.hh>
+#include <dune/solvers/common/boxconstraint.hh>
 
     /** \brief A Gauss-Seidel iterator which does not assume that the functional
         is convex, but which expects a bounded admissible set.
diff --git a/dune/solvers/solvers/iterativesolver.cc b/dune/solvers/solvers/iterativesolver.cc
index 67b27d1bd5b2a1da6219499c595f6679d4d90ab3..808b28035c56236003d952d71dfacad2c2ec2e87 100644
--- a/dune/solvers/solvers/iterativesolver.cc
+++ b/dune/solvers/solvers/iterativesolver.cc
@@ -4,7 +4,7 @@
 #include <iomanip>
 #include <fstream>
 
-#include <dune/solvers/genericvectortools.hh>
+#include <dune/solvers/common/genericvectortools.hh>
 
 template <class VectorType, class BitVectorType>
 void IterativeSolver<VectorType, BitVectorType>::check() const
diff --git a/dune/solvers/solvers/quadraticipopt.hh b/dune/solvers/solvers/quadraticipopt.hh
index 9496db847b417083fd988087fb37552082a88736..b4a0bfb5ce027906cfa66131ec2c6c076f8a6bd0 100644
--- a/dune/solvers/solvers/quadraticipopt.hh
+++ b/dune/solvers/solvers/quadraticipopt.hh
@@ -15,7 +15,7 @@
 #include <dune/istl/bcrsmatrix.hh>
 #include <dune/istl/bvector.hh>
 
-#include <dune/solvers/boxconstraint.hh>
+#include <dune/solvers/common/boxconstraint.hh>
 #include <dune/solvers/common/canignore.hh>
 #include <dune/solvers/solvers/iterativesolver.hh>
 
diff --git a/dune/solvers/solvers/solver.hh b/dune/solvers/solvers/solver.hh
index 14ead9b2e8f99006c08e99318f927be9107e178e..28aff314709896d73de6a49ab1b58dd6ecc35faa 100644
--- a/dune/solvers/solvers/solver.hh
+++ b/dune/solvers/solvers/solver.hh
@@ -1,7 +1,7 @@
 #ifndef DUNE_SOLVER_HH
 #define DUNE_SOLVER_HH
 
-#include <dune/solvers/numproc.hh>
+#include <dune/solvers/common/numproc.hh>
 
     /** \brief The base class for all sorts of solver algorithms */
     class Solver : public NumProc
diff --git a/dune/solvers/transferoperators/mandelobsrestrictor.hh b/dune/solvers/transferoperators/mandelobsrestrictor.hh
index 6e347248494fad1ea511c4f13343cf598501d607..c22621da09d614bced389e8562836b6033d711fa 100644
--- a/dune/solvers/transferoperators/mandelobsrestrictor.hh
+++ b/dune/solvers/transferoperators/mandelobsrestrictor.hh
@@ -4,7 +4,7 @@
 #include <dune/common/bitsetvector.hh>
 #include <dune/solvers/transferoperators/obstaclerestrictor.hh>
 #include <dune/solvers/transferoperators/multigridtransfer.hh>
-#include <dune/solvers/boxconstraint.hh>
+#include <dune/solvers/common/boxconstraint.hh>
 
 template <class DiscFuncType>
 class MandelObstacleRestrictor : public ObstacleRestrictor<DiscFuncType>
diff --git a/dune/solvers/transferoperators/obstaclerestrictor.hh b/dune/solvers/transferoperators/obstaclerestrictor.hh
index aa6edbeb3aef867a171dd021bee88d0d491e1562..975850e6c66b500a492f53094e05a8c812cf15b8 100644
--- a/dune/solvers/transferoperators/obstaclerestrictor.hh
+++ b/dune/solvers/transferoperators/obstaclerestrictor.hh
@@ -4,7 +4,7 @@
 #include <vector>
 
 #include <dune/solvers/transferoperators/multigridtransfer.hh>
-#include <dune/solvers/boxconstraint.hh>
+#include <dune/solvers/common/boxconstraint.hh>
 
 /** \brief Abstract base class for all obstacle restriction operators
  * \todo Do we need the template parameter?