diff --git a/dune/solvers/iterationsteps/blockgsstep.cc b/dune/solvers/iterationsteps/blockgsstep.cc
index 18c119d996c18a6d1083441a566bb2d8d2f42a6b..c8132c517c0abbe049a8d72630db300e26124d35 100644
--- a/dune/solvers/iterationsteps/blockgsstep.cc
+++ b/dune/solvers/iterationsteps/blockgsstep.cc
@@ -38,7 +38,7 @@ void BlockGSStep<OperatorType, DiscFuncType, BitVectorType>::iterate()
 {
     const OperatorType& mat = *this->mat_;
 
-    for (int i=0; i<this->x_->size(); i++) {
+    for (size_t i=0; i<this->x_->size(); i++) {
 
         /** \todo Handle more general boundary conditions */
         if ((*this->ignoreNodes_)[i][0]) {
diff --git a/dune/solvers/iterationsteps/projectedblockgsstep.cc b/dune/solvers/iterationsteps/projectedblockgsstep.cc
index 30902ed0c3a0aebbdbe66049fd16d94a1dd5980f..6ac1b03181106a81c75e8b8fad79b9252800095a 100644
--- a/dune/solvers/iterationsteps/projectedblockgsstep.cc
+++ b/dune/solvers/iterationsteps/projectedblockgsstep.cc
@@ -15,7 +15,7 @@ void ProjectedBlockGSStep<OperatorType, DiscFuncType>::iterate()
 
     const OperatorType& mat = *this->mat_;
 
-    for (int i=0; i<this->x_->size(); i++) {
+    for (size_t i=0; i<this->x_->size(); i++) {
 
         /** \todo Handle more general boundary conditions */
         if ((*this->ignoreNodes_)[i][0])
diff --git a/dune/solvers/iterationsteps/trustregiongsstep.cc b/dune/solvers/iterationsteps/trustregiongsstep.cc
index f5b64e99868e6689de0dd9d3f837ef30901f9800..8e745da24288056f33aa67276306b645e41645d7 100644
--- a/dune/solvers/iterationsteps/trustregiongsstep.cc
+++ b/dune/solvers/iterationsteps/trustregiongsstep.cc
@@ -8,7 +8,7 @@ DiscFuncType TrustRegionGSStep<OperatorType, DiscFuncType>::getSol()
 template<class OperatorType, class DiscFuncType>
 inline 
 double TrustRegionGSStep<OperatorType, DiscFuncType>::
-residual(int index, int blockIndex) const
+residual(unsigned int index, int blockIndex) const
 {
     const OperatorType& mat = *this->mat_;
 
@@ -53,7 +53,7 @@ void TrustRegionGSStep<OperatorType, DiscFuncType>::iterate()
     //std::cout << "----------------------------------\n";
     //double oldEnergy = computeEnergy(mat, *this->x_, *this->rhs_);
 
-    for (int i=0; i<this->x_->size(); i++) {
+    for (size_t i=0; i<this->x_->size(); i++) {
 
         // scalar gauss-seidel
         for (int j=0; j<blocksize; j++) {
diff --git a/dune/solvers/iterationsteps/trustregiongsstep.hh b/dune/solvers/iterationsteps/trustregiongsstep.hh
index 8ee78a78aa208af5085a86494ae5614a4ab840ca..df59a2737c4b3a115a509ed5e730dbb011ec005c 100644
--- a/dune/solvers/iterationsteps/trustregiongsstep.hh
+++ b/dune/solvers/iterationsteps/trustregiongsstep.hh
@@ -37,7 +37,7 @@
 
         virtual DiscFuncType getSol();
 
-        double residual(int index, int blockIndex) const;
+        double residual(unsigned int index, int blockIndex) const;
 
     };
 
diff --git a/dune/solvers/solvers/loopsolver.cc b/dune/solvers/solvers/loopsolver.cc
index e927a573a80ca81318ec6dd6095ef0e2f4af7ac9..b103b829fc3c687b6c71966c1e2de1e5ab3e0118 100644
--- a/dune/solvers/solvers/loopsolver.cc
+++ b/dune/solvers/solvers/loopsolver.cc
@@ -56,7 +56,7 @@ void ::LoopSolver<VectorType, BitVectorType>::solve()
             std::cout << "---------------";
         std::cout << "---------------";
         std::cout << "---------";
-        for(int i=0; i<header.size(); ++i)
+        for(size_t i=0; i<header.size(); ++i)
             std::cout << "-";
         std::cout << std::endl;
     }