diff --git a/dune/istl/matrix.hh b/dune/istl/matrix.hh
index fe5cd3f7f07fb4227ddc1864cd2b26d9813c7f01..ec2560ea74a2a443e5f331ffe0744d0b723038c1 100644
--- a/dune/istl/matrix.hh
+++ b/dune/istl/matrix.hh
@@ -535,6 +535,8 @@ namespace Dune {
 #ifdef DUNE_ISTL_WITH_CHECKING
       if (i<0 || i>=N()) DUNE_THROW(ISTLError,"row index out of range");
       if (j<0 || i>=M()) DUNE_THROW(ISTLError,"column index out of range");
+#else
+      DUNE_UNUSED_PARAMETER(i);  DUNE_UNUSED_PARAMETER(j);
 #endif
       return true;
     }
diff --git a/dune/istl/matrixmarket.hh b/dune/istl/matrixmarket.hh
index 68e3e253fd1d16dc748997c631997f26bb26035f..09bf83f210fd97bf44e6ff19a08e76e27b824343 100644
--- a/dune/istl/matrixmarket.hh
+++ b/dune/istl/matrixmarket.hh
@@ -212,7 +212,7 @@ namespace Dune
     {
       typedef BlockVector<FieldVector<T,i>,A> M;
 
-      static void print(std::ostream& os, const M& m)
+      static void print(std::ostream& os, const M&)
       {
         os<<"% ISTL_STRUCT blocked ";
         os<<i<<" "<<1<<std::endl;
@@ -224,7 +224,7 @@ namespace Dune
     {
       typedef BCRSMatrix<FieldMatrix<T,i,j>,A> M;
 
-      static void print(std::ostream& os, const M& m)
+      static void print(std::ostream& os, const M&)
       {
         os<<"% ISTL_STRUCT blocked ";
         os<<i<<" "<<j<<std::endl;
diff --git a/dune/istl/matrixmatrix.hh b/dune/istl/matrixmatrix.hh
index fa424d32e818b28b6e3a53265c54fbae05d803c5..7689fdbf340f72cc91288e2d2c377b2cf1c94802 100644
--- a/dune/istl/matrixmatrix.hh
+++ b/dune/istl/matrixmatrix.hh
@@ -157,7 +157,7 @@ namespace Dune
       {}
 
       template<class T1, class T2>
-      void operator()(const T1& t1, const T2& t2, size_type j)
+      void operator()(const T1&, const T2&, size_type j)
       {
         rowiter.insert(j);
       }
@@ -183,11 +183,11 @@ namespace Dune
       typedef typename Matrix::CreateIterator CreateIterator;
       typedef typename Matrix::size_type size_type;
 
-      MatrixInitializer(Matrix& A_, size_type rows)
+      MatrixInitializer(Matrix& A_, size_type)
         : count(0), A(A_)
       {}
       template<class T1, class T2>
-      void operator()(const T1& t1, const T2& t2, int j)
+      void operator()(const T1&, const T2&, int)
       {
         ++count;
       }
@@ -230,7 +230,7 @@ namespace Dune
       {}
 
       template<class T1, class T2>
-      void operator()(const T1& t1, const T2& t2, size_type i, size_type j)
+      void operator()(const T1&, const T2&, size_type i, size_type j)
       {
         entries[i].insert(j);
       }
@@ -247,8 +247,8 @@ namespace Dune
         return nnz;
       }
       template<class A1, class A2, int n2, int m2, int n3, int m3>
-      void initPattern(const BCRSMatrix<FieldMatrix<T,n2,m2>,A1>& mat1,
-                       const BCRSMatrix<FieldMatrix<T,n3,m3>,A2>& mat2)
+      void initPattern(const BCRSMatrix<FieldMatrix<T,n2,m2>,A1>&,
+                       const BCRSMatrix<FieldMatrix<T,n3,m3>,A2>&)
       {
         typedef typename std::vector<std::set<size_t> >::const_iterator Iter;
         CreateIterator citer = A.createbegin();
@@ -420,6 +420,7 @@ namespace Dune
       template<class T1, class T2>
       void operator()(const T1& t1, const T2& t2, size_type i)
       {
+        DUNE_UNUSED_PARAMETER(i);
         assert(this->col.index()==i);
         addMatMultTransposeMat(*this->col,t1,t2);
       }
@@ -556,6 +557,7 @@ namespace Dune
   void matMultTransposeMat(BCRSMatrix<FieldMatrix<T,n,k>,A>& res, const BCRSMatrix<FieldMatrix<T,n,m>,A1>& mat,
                            const BCRSMatrix<FieldMatrix<T,k,m>,A2>& matt, bool tryHard=false)
   {
+    DUNE_UNUSED_PARAMETER(tryHard);
     matMultMat<2>(res,mat, matt);
   }
 
@@ -586,6 +588,7 @@ namespace Dune
   void transposeMatMultMat(BCRSMatrix<FieldMatrix<T,n,m>,A>& res, const BCRSMatrix<FieldMatrix<T,k,n>,A1>& mat,
                            const BCRSMatrix<FieldMatrix<T,k,m>,A2>& matt, bool tryHard=false)
   {
+    DUNE_UNUSED_PARAMETER(tryHard);
     matMultMat<1>(res,mat, matt);
   }
 
diff --git a/dune/istl/matrixutils.hh b/dune/istl/matrixutils.hh
index bf5cb5f756d63b48d0265fd8f25bac94efb53f56..5b8c7c5921b1825559234896a70834f6b2e0a129 100644
--- a/dune/istl/matrixutils.hh
+++ b/dune/istl/matrixutils.hh
@@ -131,7 +131,7 @@ namespace Dune
      * @brief Check whether the a matrix has diagonal values
      * on blocklevel recursion levels.
      */
-    static void check(const Matrix& mat)
+    static void check(const Matrix& /* mat */)
     {
 #ifdef DUNE_ISTL_WITH_CHECKING
       // TODO Implement check
diff --git a/dune/istl/multitypeblockmatrix.hh b/dune/istl/multitypeblockmatrix.hh
index 817adf295a154e4596448c67a5bd1c682a8934db..e63fb4c4cf6c6430adba4ed4ecf04c9d4d852670 100644
--- a/dune/istl/multitypeblockmatrix.hh
+++ b/dune/istl/multitypeblockmatrix.hh
@@ -118,7 +118,7 @@ namespace Dune {
   template<typename T1, typename T2>
   class MultiTypeBlockMatrix_Ident<0,T1,T2> {
   public:
-    static void equalize (T1& a, const T2& b)
+    static void equalize (T1&, const T2&)
     {}
   };
 
@@ -331,7 +331,7 @@ namespace Dune {
   class MultiTypeBlockMatrix_Solver_Col<I,crow,ccol,0> {
   public:
     template <typename Trhs, typename TVector, typename TMatrix, typename K>
-    static void calc_rhs(const TMatrix& A, TVector& x, TVector& v, Trhs& b, const K& w) {}
+    static void calc_rhs(const TMatrix&, TVector&, TVector&, Trhs&, const K&) {}
   };
 
 
@@ -444,20 +444,20 @@ namespace Dune {
   class MultiTypeBlockMatrix_Solver<I,crow,0> {
   public:
     template <typename TVector, typename TMatrix, typename K>
-    static void dbgs(const TMatrix& A, TVector& x, TVector& v,
-                     const TVector& b, const K& w) {}
+    static void dbgs(const TMatrix&, TVector&, TVector&,
+                     const TVector&, const K&) {}
 
     template <typename TVector, typename TMatrix, typename K>
-    static void bsorf(const TMatrix& A, TVector& x, TVector& v,
-                      const TVector& b, const K& w) {}
+    static void bsorf(const TMatrix&, TVector&, TVector&,
+                      const TVector&, const K&) {}
 
     template <typename TVector, typename TMatrix, typename K>
-    static void bsorb(const TMatrix& A, TVector& x, TVector& v,
-                      const TVector& b, const K& w) {}
+    static void bsorb(const TMatrix&, TVector&, TVector&,
+                      const TVector&, const K&) {}
 
     template <typename TVector, typename TMatrix, typename K>
-    static void dbjac(const TMatrix& A, TVector& x, TVector& v,
-                      const TVector& b, const K& w) {}
+    static void dbjac(const TMatrix&, TVector&, TVector&,
+                      const TVector&, const K&) {}
   };
 
 } // end namespace
diff --git a/dune/istl/overlappingschwarz.hh b/dune/istl/overlappingschwarz.hh
index 1fbe9ea2079a02ebb940fd85cfb46d096883747f..61529b7dd2fa46b5dd33e17a9deb580dc32ee10d 100644
--- a/dune/istl/overlappingschwarz.hh
+++ b/dune/istl/overlappingschwarz.hh
@@ -1125,6 +1125,7 @@ namespace Dune
                         const SubDomains& subDomains,
                         bool onTheFly)
   {
+    DUNE_UNUSED_PARAMETER(onTheFly);
     DUNE_UNUSED_PARAMETER(rowToDomain);
     DUNE_UNUSED_PARAMETER(mat);
     DUNE_UNUSED_PARAMETER(solvers);
diff --git a/dune/istl/paamg/aggregates.hh b/dune/istl/paamg/aggregates.hh
index dd2d9d6495dfbe0eeabe88e33e64dd6fa43ded7e..8cdb89c33741f2b02ff73674899c00f9b7e61f13 100644
--- a/dune/istl/paamg/aggregates.hh
+++ b/dune/istl/paamg/aggregates.hh
@@ -223,7 +223,7 @@ namespace Dune
 
     template<class M, class N>
     template<class G>
-    inline void SymmetricMatrixDependency<M,N>::examine(G& graph, const typename G::EdgeIterator& edge, const ColIter& col)
+    inline void SymmetricMatrixDependency<M,N>::examine(G&, const typename G::EdgeIterator& edge, const ColIter&)
     {
       if(*valIter_ > alpha() * maxValue_) {
         edge.properties().setDepends();
diff --git a/dune/istl/paamg/kamg.hh b/dune/istl/paamg/kamg.hh
index 44d1978677d7eab995ac98b51984df48da1e8ed5..efdfd8e6f3d84724170e71575b6a085d115765b9 100644
--- a/dune/istl/paamg/kamg.hh
+++ b/dune/istl/paamg/kamg.hh
@@ -53,11 +53,15 @@ namespace Dune
 
       /**  \copydoc Preconditioner::pre(X&,Y&) */
       void pre(typename AMG::Domain& x, typename AMG::Range& b)
-      {}
+      {
+        DUNE_UNUSED_PARAMETER(x); DUNE_UNUSED_PARAMETER(b);
+      }
 
       /**  \copydoc Preconditioner::post(X&) */
       void post(typename AMG::Domain& x)
-      {}
+      {
+        DUNE_UNUSED_PARAMETER(x);
+      }
 
       /** \copydoc Preconditioner::apply(X&,const Y&) */
       void apply(typename AMG::Domain& v, const typename AMG::Range& d)
diff --git a/dune/istl/paamg/test/graphtest.cc b/dune/istl/paamg/test/graphtest.cc
index d940920d1555d492973d7bac2548aa28ad74bb61..3d45daa5205d63d26bdbad60c5cc7518abc44d1c 100644
--- a/dune/istl/paamg/test/graphtest.cc
+++ b/dune/istl/paamg/test/graphtest.cc
@@ -498,7 +498,7 @@ void testGraph ()
 }
 
 
-void testAggregate(double eps)
+void testAggregate()
 {
 
   typedef Dune::FieldMatrix<double,1,1> ScalarDouble;
@@ -557,7 +557,7 @@ int main (int argc , char ** argv)
 {
   try {
     testGraph();
-    testAggregate(.001);
+    testAggregate();
     exit(testEdge());
   }
   catch (Dune::ISTLError& error)
diff --git a/dune/istl/repartition.hh b/dune/istl/repartition.hh
index ffd1e356740c6c86da82aa4d817cb006c054c08e..b258d9417dd7d615202c158a48d7d669458ff9aa 100644
--- a/dune/istl/repartition.hh
+++ b/dune/istl/repartition.hh
@@ -97,7 +97,7 @@ namespace Dune
 
     // Store the global index information for repairing the remote index information
     std::map<int,SLList<std::pair<T1,Attribute> > > globalIndices;
-    storeGlobalIndicesOfRemoteIndices(globalIndices, oocomm.remoteIndices(), indexSet);
+    storeGlobalIndicesOfRemoteIndices(globalIndices, oocomm.remoteIndices());
     indexSet.beginResize();
 
     for(VertexIterator vertex = graph.begin(), vend=graph.end(); vertex != vend; ++vertex) {
@@ -679,7 +679,7 @@ namespace Dune
     struct EdgeFunctor
       : public BaseEdgeFunctor
     {
-      EdgeFunctor(idxtype* adj, const ParmetisDuneIndexMap& data, std::size_t s)
+      EdgeFunctor(int* adj, const ParmetisDuneIndexMap& data, std::size_t)
         : BaseEdgeFunctor(adj, data)
       {}
 
diff --git a/dune/istl/superlu.hh b/dune/istl/superlu.hh
index 5f5b1c79c2028b17f5c4182752d70ae0f1ae563b..0cfced6cd6d512bffd27f33541cc3754d36eb7a6 100644
--- a/dune/istl/superlu.hh
+++ b/dune/istl/superlu.hh
@@ -113,7 +113,7 @@ namespace Dune
 
     }
 
-    static void destroy(SuperMatrix *m)
+    static void destroy(SuperMatrix*)
     {}
 
   };
@@ -194,7 +194,7 @@ namespace Dune
 
     }
 
-    static void destroy(SuperMatrix *mat)
+    static void destroy(SuperMatrix*)
     {}
   };
 
@@ -234,7 +234,7 @@ namespace Dune
 
     }
 
-    static void destroy(SuperMatrix *mat)
+    static void destroy(SuperMatrix* /* mat */)
     {}
   };
 
diff --git a/dune/istl/test/bcrsbuild.cc b/dune/istl/test/bcrsbuild.cc
index 3c183c4e44962ab4905ddaee041141136b17c4a3..f0dd7d167753fc5096ef768530dea7765ab57f78 100644
--- a/dune/istl/test/bcrsbuild.cc
+++ b/dune/istl/test/bcrsbuild.cc
@@ -80,7 +80,7 @@ struct Builder<Dune::BCRSMatrix<B,A> >
        }*/
   }
 
-  void rowWiseBuild(Dune::BCRSMatrix<B,A>& matrix, int rows, int cols)
+  void rowWiseBuild(Dune::BCRSMatrix<B,A>& matrix, int /* rows */, int cols)
   {
 
     for(typename Dune::BCRSMatrix<B,A>::CreateIterator ci=matrix.createbegin(), cend=matrix.createend();
diff --git a/dune/istl/test/matrixredisttest.cc b/dune/istl/test/matrixredisttest.cc
index 3455a71411e229acd3065a1a3e7ce083d05b3c83..8ebeeae344aa1b6f1b99bd6d42d4d1a9fb07a444 100644
--- a/dune/istl/test/matrixredisttest.cc
+++ b/dune/istl/test/matrixredisttest.cc
@@ -24,7 +24,7 @@ public:
   int errorcode;
 };
 
-void MPI_err_handler(MPI_Comm *comm, int *err_code, ...){
+void MPI_err_handler(MPI_Comm *, int *err_code, ...){
   char *err_string=new char[MPI_MAX_ERROR_STRING];
   int err_length;
   MPI_Error_string(*err_code, err_string, &err_length);