diff --git a/src/pe/raytracing/Raytracer.cpp b/src/pe/raytracing/Raytracer.cpp
index 75e06bde037b71bf07212afc45b7d25324def79e..3ae2e9454a036bf8a864dca4d41d2c2d1fe38415 100644
--- a/src/pe/raytracing/Raytracer.cpp
+++ b/src/pe/raytracing/Raytracer.cpp
@@ -289,8 +289,6 @@ void Raytracer::writeDepthsToFile(const std::vector<BodyIntersectionInfo>& inter
  */
 void Raytracer::writeDepthsToFile(const std::vector<BodyIntersectionInfo>& intersectionsBuffer,
                                   const std::string& fileName) const {
-   namespace fs = boost::filesystem;
-   
    real_t inf = std::numeric_limits<real_t>::max();
    
    real_t t_max = 1;
@@ -308,9 +306,9 @@ void Raytracer::writeDepthsToFile(const std::vector<BodyIntersectionInfo>& inter
    
    t_max = forest_->getDomain().maxDistance(cameraPosition_);
    
-   fs::path dir (getTBufferOutputDirectory());
-   fs::path file (fileName);
-   fs::path fullPath = dir / file;
+   filesystem::path dir (getTBufferOutputDirectory());
+   filesystem::path file (fileName);
+   filesystem::path fullPath = dir / file;
    
    std::vector<u_char> lodeTBuffer(pixelsHorizontal_*pixelsVertical_);
    
@@ -353,11 +351,9 @@ void Raytracer::writeImageToFile(const std::vector<BodyIntersectionInfo>& inters
  */
 void Raytracer::writeImageToFile(const std::vector<BodyIntersectionInfo>& intersectionsBuffer,
                                  const std::string& fileName) const {
-   namespace fs = boost::filesystem;
-   
-   fs::path dir = getImageOutputDirectory();
-   fs::path file (fileName);
-   fs::path fullPath = dir / file;
+   filesystem::path dir = getImageOutputDirectory();
+   filesystem::path file (fileName);
+   filesystem::path fullPath = dir / file;
    
    std::vector<u_char> lodeImageBuffer(pixelsHorizontal_*pixelsVertical_*3);
    
diff --git a/src/pe/raytracing/Raytracer.h b/src/pe/raytracing/Raytracer.h
index 938a797ddf35e3d2f78e619a1baf56c06e03073b..fef3b026ef47f474c49b29ec58821b5ddd4a6f9b 100644
--- a/src/pe/raytracing/Raytracer.h
+++ b/src/pe/raytracing/Raytracer.h
@@ -25,7 +25,7 @@
 #include <core/math/Vector3.h>
 #include <core/mpi/all.h>
 #include <core/config/Config.h>
-#include <boost/filesystem.hpp>
+#include <core/Filesystem.h>
 #include <core/timing/TimingTree.h>
 #include <functional>
 #include "Ray.h"
@@ -40,7 +40,6 @@
 #include "core/mpi/all.h"
 #include <stddef.h>
 
-using namespace walberla;
 using namespace walberla::pe;
 using namespace walberla::timing;
 
@@ -362,10 +361,8 @@ inline void Raytracer::setTBufferOutputEnabled(const bool enabled) {
  * \param enabled Set to true / false to enable / disable tbuffer output.
  */
 inline void Raytracer::setTBufferOutputDirectory(const std::string& path) {
-   namespace fs = boost::filesystem;
-   
-   fs::path dir (path);
-   WALBERLA_CHECK(fs::exists(dir) && fs::is_directory(dir), "Tbuffer output directory " << path << " is invalid.");
+   filesystem::path dir (path);
+   WALBERLA_CHECK(filesystem::exists(dir) && filesystem::is_directory(dir), "Tbuffer output directory " << path << " is invalid.");
    
    tBufferOutputDirectory_ = path;
 }
@@ -388,10 +385,8 @@ inline void Raytracer::setLocalImageOutputEnabled(const bool enabled) {
  * \param enabled Set to true / false to enable / disable image output.
  */
 inline void Raytracer::setImageOutputDirectory(const std::string& path) {
-   namespace fs = boost::filesystem;
-   
-   fs::path dir (path);
-   WALBERLA_CHECK(fs::exists(dir) && fs::is_directory(dir), "Image output directory " << path << " is invalid.");
+   filesystem::path dir (path);
+   WALBERLA_CHECK(filesystem::exists(dir) && filesystem::is_directory(dir), "Image output directory " << path << " is invalid.");
    
    imageOutputDirectory_ = path;
 }