diff --git a/MathLib/ODE/CVodeSolver.cpp b/MathLib/ODE/CVodeSolver.cpp
index a38cf686d0d8b870ea796af650fa2340f8ead991..131a8ee3a4e44440fa4b885ce4264772e8690fd5 100644
--- a/MathLib/ODE/CVodeSolver.cpp
+++ b/MathLib/ODE/CVodeSolver.cpp
@@ -20,6 +20,8 @@
 #include <sundials/sundials_dense.h> /* definitions DlsMat DENSE_ELEM */
 #include <sundials/sundials_types.h> /* definition of type realtype */
 
+#include "BaseLib/ConfigTree.h"
+
 void check_error(std::string const& f_name, int const error_flag)
 {
 	if (error_flag != CV_SUCCESS)
diff --git a/MathLib/ODE/CVodeSolver.h b/MathLib/ODE/CVodeSolver.h
index 8c5ca3d5cf58d934916701ce50376cafad4780ae..a16e0fb42329246c529d13e9b8c4dc9c6e809948 100644
--- a/MathLib/ODE/CVodeSolver.h
+++ b/MathLib/ODE/CVodeSolver.h
@@ -10,11 +10,16 @@
 #ifndef MATHLIB_CVODESOLVER_H
 #define MATHLIB_CVODESOLVER_H
 
-#include "BaseLib/ConfigTree.h"
+#include <memory>
 
 #include "ODESolverTypes.h"
 #include "FunctionHandles.h"
 
+namespace BaseLib
+{
+class ConfigTree;
+}
+
 namespace MathLib
 {
 class CVodeSolverImpl;
diff --git a/MathLib/ODE/ConcreteODESolver.h b/MathLib/ODE/ConcreteODESolver.h
index 3a27d78d4fcd9207aed68c5cffdfdf15ac4ede8d..788657de8d395e4858ad506d5e71f02a90c71560 100644
--- a/MathLib/ODE/ConcreteODESolver.h
+++ b/MathLib/ODE/ConcreteODESolver.h
@@ -12,14 +12,13 @@
 
 #include <memory>
 
-#include "BaseLib/ConfigTree.h"
-
-#include "ODESolver.h"
 #include "FunctionHandles.h"
+#include "ODESolver.h"
 
-#ifdef CVODE_FOUND
-#include "CVodeSolver.h"
-#endif
+namespace BaseLib
+{
+class ConfigTree;
+}
 
 namespace MathLib
 {