diff --git a/src/localgeodesicfestiffness.hh b/src/localgeodesicfestiffness.hh
index 8224b8bdf01f6e15340a3a5ec89c512f6a83e482..42aa5744657cf3345058ec517ee3367f28195100 100644
--- a/src/localgeodesicfestiffness.hh
+++ b/src/localgeodesicfestiffness.hh
@@ -8,6 +8,8 @@
 #include <dune/disc/operators/localstiffness.hh>
 #include<dune/disc/operators/boundaryconditions.hh>
 
+#include "rigidbodymotion.hh"
+
 template<class GridView, class TargetSpace>
 class LocalGeodesicFEStiffness 
     : public Dune::LocalStiffness<GridView,double,TargetSpace::TangentVector::size>
diff --git a/src/makestraightrod.hh b/src/makestraightrod.hh
index 933d85055f68eccd2a19781362cb95b08ffbff7d..4facbc628ddbc2942cf44c81953e5fd22f08e1b0 100644
--- a/src/makestraightrod.hh
+++ b/src/makestraightrod.hh
@@ -5,7 +5,7 @@
 #include <dune/common/fvector.hh>
 #include <dune/ag-common/crossproduct.hh>
 
-#include "rotation.hh"
+#include "rigidbodymotion.hh"
 
 /** \brief Make a straight rod from two given endpoints
 
diff --git a/src/maxnormtrustregion.hh b/src/maxnormtrustregion.hh
index 4d9fddda89bdc14a0376273b848950586bd699d2..6346df4d63d3f0ab95b9f69b171952905ca36856 100644
--- a/src/maxnormtrustregion.hh
+++ b/src/maxnormtrustregion.hh
@@ -1,6 +1,10 @@
 #ifndef MAX_NORM_TRUST_REGION_HH
 #define MAX_NORM_TRUST_REGION_HH
 
+#include <vector>
+
+#include <dune/solvers/boxconstraint.hh>
+
 template <int blocksize>
 class MaxNormTrustRegion
 {
diff --git a/src/planarrodassembler.hh b/src/planarrodassembler.hh
index 6da3797cb6495eebb19de0c09c07833028f34387..20bf1a199aec3b04878a1936a41d013666717cf0 100644
--- a/src/planarrodassembler.hh
+++ b/src/planarrodassembler.hh
@@ -7,6 +7,8 @@
 #include <dune/istl/matrixindexset.hh>
 #include <dune/istl/matrix.hh>
 
+#include "rigidbodymotion.hh"
+
 namespace Dune 
 {
 
diff --git a/src/riemanniantrsolver.hh b/src/riemanniantrsolver.hh
index cac1074ac248ada7cd8a09b3b4fc85f790dd8884..7919ef3a2ca0206264598675619e25b0002e8ce4 100644
--- a/src/riemanniantrsolver.hh
+++ b/src/riemanniantrsolver.hh
@@ -10,7 +10,7 @@
 
 #include <dune/solvers/boxconstraint.hh>
 #include <dune/solvers/norms/h1seminorm.hh>
-#include <dune/solvers/solvers/solver.hh>
+#include <dune/solvers/solvers/iterativesolver.hh>
 
 #include "geodesicfeassembler.hh"
 
diff --git a/src/rodrefine.hh b/src/rodrefine.hh
index 4c20bb4c3cff0277626152e124581f47ba4ffbec..d847035cbfc1dfd4821311be14d78c401eff31c4 100644
--- a/src/rodrefine.hh
+++ b/src/rodrefine.hh
@@ -1,6 +1,9 @@
 #ifndef ROD_REFINE_HH
 #define ROD_REFINE_HH
 
+#include <vector>
+#include <map>
+
 #include "rigidbodymotion.hh"
 
 template <class GridType>
diff --git a/src/rodwriter.hh b/src/rodwriter.hh
index 7e5063085db4215046072e60f3035a509bff7d2f..3837aa19d646cfa949f77a49c16824d5a5746fd0 100644
--- a/src/rodwriter.hh
+++ b/src/rodwriter.hh
@@ -2,6 +2,7 @@
 #define ROD_WRITER_HH
 
 #include <fstream>
+#include <vector>
 
 #include <dune/common/exceptions.hh>
 #include <dune/istl/bvector.hh>
diff --git a/src/svd.hh b/src/svd.hh
index 6c96a6423dbde247e183ad84638e5dfba3e80281..bb2ba97911cf8066cad6b659e9aa02c6d11aa348 100644
--- a/src/svd.hh
+++ b/src/svd.hh
@@ -4,7 +4,7 @@
 #ifndef SVD_HH
 #define SVD_HH
 
-#include <math.h>
+#include <cmath.h>
 
 
 template <class T>
@@ -19,10 +19,10 @@ template <class T>
 T pythag(T a, T b)
 {
     T absa,absb;
-    absa=std::abs(a);
-    absb=std::abs(b);
+    absa=std::fabs(a);
+    absb=std::fabs(b);
     if (absa > absb) 
-        return absa*sqrt(1.0+SQR(absb/absa));
+        return absa*std::sqrt(1.0+SQR(absb/absa));
     else 
         return (absb == 0.0 ? 0.0 : absb*sqrt(1.0+SQR(absa/absb)));
 }