diff --git a/Device/Detector/IDetector.cpp b/Device/Detector/IDetector.cpp
index 60cfd6ae84ddc684e09107b6974db6317077a2f4..353d06c6c3721872e7b8027ad807f0d8cc3c7b74 100644
--- a/Device/Detector/IDetector.cpp
+++ b/Device/Detector/IDetector.cpp
@@ -16,6 +16,7 @@
 #include "Base/Axis/Frame.h"
 #include "Base/Axis/Scale.h"
 #include "Base/Util/Assert.h"
+#include "Device/Data/Datafield.h"
 #include "Device/Mask/InfinitePlane.h"
 #include "Device/Mask/MaskStack.h"
 #include "Device/Resolution/ConvolutionDetectorResolution.h"
diff --git a/Device/Resolution/ConvolutionDetectorResolution.cpp b/Device/Resolution/ConvolutionDetectorResolution.cpp
index 0df3eb8438bfacd5669d758ff72d3ef8deb7a5cb..ea45fc45bc123a58057f763ccb5f51194659675c 100644
--- a/Device/Resolution/ConvolutionDetectorResolution.cpp
+++ b/Device/Resolution/ConvolutionDetectorResolution.cpp
@@ -16,6 +16,7 @@
 #include "Base/Axis/Frame.h"
 #include "Base/Axis/Scale.h"
 #include "Base/Util/Assert.h"
+#include "Device/Data/Datafield.h"
 #include "Device/Resolution/Convolve.h"
 
 ConvolutionDetectorResolution::ConvolutionDetectorResolution(cumulative_DF_1d res_function_1d)
diff --git a/Device/Resolution/IDetectorResolution.h b/Device/Resolution/IDetectorResolution.h
index 5fe570487a1bdbde7e773d99d476cf1066b4f50c..9cf69bd8ef8d4f65cdda583b0132a148d92dfb4b 100644
--- a/Device/Resolution/IDetectorResolution.h
+++ b/Device/Resolution/IDetectorResolution.h
@@ -16,9 +16,10 @@
 #define BORNAGAIN_DEVICE_RESOLUTION_IDETECTORRESOLUTION_H
 
 #include "Base/Types/ICloneable.h"
-#include "Device/Data/Datafield.h"
 #include "Param/Node/INode.h"
 
+class Datafield;
+
 //! Interface for detector resolution algorithms
 
 class IDetectorResolution : public ICloneable, public INode {
diff --git a/Tests/Unit/Device/Detector2DTest.cpp b/Tests/Unit/Device/Detector2DTest.cpp
index 76587f447ad7bd21b95986160359e87b8a7fa51d..d3750bd380a925471f294eb9523156e7be691611 100644
--- a/Tests/Unit/Device/Detector2DTest.cpp
+++ b/Tests/Unit/Device/Detector2DTest.cpp
@@ -5,6 +5,7 @@
 #include "Base/Axis/Scale.h"
 #include "Base/Const/Units.h"
 #include "Device/Beam/Beam.h"
+#include "Device/Data/Datafield.h"
 #include "Device/Mask/MaskStack.h"
 #include "Device/Mask/Polygon.h"
 #include "Device/Mask/Rectangle.h"
diff --git a/Wrap/Swig/libBornAgainDevice.i b/Wrap/Swig/libBornAgainDevice.i
index 0438a622861c9add60b5f0e9b8f8a9b5607486f7..6d85f6647fe62c2ccfb5be6b5fc812dab0aebbe3 100644
--- a/Wrap/Swig/libBornAgainDevice.i
+++ b/Wrap/Swig/libBornAgainDevice.i
@@ -26,6 +26,7 @@
 #include "Device/Beam/Beam.h"
 #include "Device/Beam/FootprintGauss.h"
 #include "Device/Beam/FootprintSquare.h"
+#include "Device/Data/Datafield.h"
 #include "Device/Detector/Detector2D.h"
 #include "Device/Detector/OffspecDetector.h"
 #include "Device/Detector/SphericalDetector.h"
diff --git a/auto/Wrap/libBornAgainDevice_wrap.cpp b/auto/Wrap/libBornAgainDevice_wrap.cpp
index 52d182f8508d6bd8793034bbd543a43983d90eb0..5a22cd0a6ddb0af360ab047c94aa4261c80e5d71 100644
--- a/auto/Wrap/libBornAgainDevice_wrap.cpp
+++ b/auto/Wrap/libBornAgainDevice_wrap.cpp
@@ -7019,6 +7019,7 @@ SWIGINTERN void std_vector_Sl_std_pair_Sl_double_Sc_double_Sg__Sg__insert__SWIG_
 #include "Device/Beam/Beam.h"
 #include "Device/Beam/FootprintGauss.h"
 #include "Device/Beam/FootprintSquare.h"
+#include "Device/Data/Datafield.h"
 #include "Device/Detector/Detector2D.h"
 #include "Device/Detector/OffspecDetector.h"
 #include "Device/Detector/SphericalDetector.h"