diff --git a/src/ActionWithDistribution.h b/src/ActionWithDistribution.h
index 4fd9d90fa41ea5089d65fd2e428a3b7bbe8429f8..6dd7ba2f967bb41aeedd3738e4365698c0041608 100644
--- a/src/ActionWithDistribution.h
+++ b/src/ActionWithDistribution.h
@@ -24,7 +24,6 @@
 
 #include "ActionWithValue.h"
 #include "ActionAtomistic.h"
-#include "Value.h"
 #include "PlumedException.h"
 #include "DynamicList.h"
 #include <vector>
@@ -32,6 +31,7 @@
 namespace PLMD{
 
 class Vessel;
+class Value;
 
 /**
 \ingroup MULTIINHERIT
diff --git a/src/FieldVessel.cpp b/src/FieldVessel.cpp
index 277ff9a32807e327d94fda25ad5e9255326c9284..6d67fc1f512cdecf0ff0c1697fd09a755e992a3f 100644
--- a/src/FieldVessel.cpp
+++ b/src/FieldVessel.cpp
@@ -21,6 +21,7 @@
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
 #include "FieldVessel.h"
 #include "ActionWithDistribution.h"
+#include "CubicInterpolation.h"
 
 namespace PLMD {
 
diff --git a/src/FieldVessel.h b/src/FieldVessel.h
index 85f4a2153b53093232d912e55aa0a2f6341af7e7..3bdf5881bb14aa5faa734a17ee1c2615e7380791 100644
--- a/src/FieldVessel.h
+++ b/src/FieldVessel.h
@@ -26,10 +26,11 @@
 #include <cstring>
 #include <vector>
 #include "VesselValueAccess.h"
-#include "CubicInterpolation.h"
 
 namespace PLMD {
 
+class CInterpolation;
+
 class FieldVessel : public VesselStoreAllValues {
 private:
 /// When do we merge derivatives
diff --git a/src/Vessel.cpp b/src/Vessel.cpp
index 9d3fa28f02668015abbdb48df507d26417ea22ac..4f78669d844cb1eb59c19eb7ad4f54acd633b263 100644
--- a/src/Vessel.cpp
+++ b/src/Vessel.cpp
@@ -23,6 +23,7 @@
 #include "Vessel.h"
 #include "PlumedException.h"
 #include "Value.h"
+#include "Log.h"
 
 namespace PLMD {
 
diff --git a/src/Vessel.h b/src/Vessel.h
index fc751a1743411695925d0214ca796a16a7678fac..44085e3a5f28e19ff678418016d20044d0f0f9bb 100644
--- a/src/Vessel.h
+++ b/src/Vessel.h
@@ -27,7 +27,6 @@
 #include <vector>
 #include "PlumedException.h"
 #include "Keywords.h"
-#include "Log.h"
 
 namespace PLMD{
 
@@ -41,6 +40,8 @@ on.  This class is used in PLMD::ActionWithDistribution.
 
 class ActionWithDistribution;
 class Vessel;
+class Log;
+class PlumedCommunicator;
 
 /// This class is used to pass the input to Vessels 
 class VesselOptions {