diff --git a/source/VisionX/gui-plugins/ImageMonitor/ImageMonitorWidgetController.cpp b/source/VisionX/gui-plugins/ImageMonitor/ImageMonitorWidgetController.cpp
index 9a45da9c0532b0b17884f66cd7ed97ea893b63b2..dfb097bbde30f8720b101b7353f7a6a2fa5012c0 100644
--- a/source/VisionX/gui-plugins/ImageMonitor/ImageMonitorWidgetController.cpp
+++ b/source/VisionX/gui-plugins/ImageMonitor/ImageMonitorWidgetController.cpp
@@ -86,7 +86,18 @@ namespace visionx
         providerName = "";
         frameRate = -1.0f;
 
-        outputPath = armarx::ArmarXDataPath::getHomePath();
+        // Qt Moc does not seem to accept outputDirectory being a std::filesystem::path().
+        {
+            if (const char* home = std::getenv("HOME"))
+            {
+                // ToDo: Replace with XDG_PICTURES_DIR standards when available.
+                outputDirectory = std::filesystem::path(home) / "Pictures";
+            }
+            else
+            {
+                outputDirectory = std::filesystem::absolute(".");
+            }
+        }
 
         imageBufferSize = 100;
         bufferFps = 5;
@@ -273,7 +284,7 @@ namespace visionx
     {
         properties.providerName = settings->value("providerName", "").toString().toStdString();
         properties.frameRate = settings->value("frameRate", -1).toInt();
-        properties.outputPath = settings->value("outputPath", ".").toString().toStdString();
+        properties.outputDirectory = settings->value("outputPath", ".").toString().toStdString();
         properties.imageBufferSize = settings->value("imageBufferSize", 99).toInt();
         properties.bufferFps = settings->value("bufferFps", 5.0f).toFloat();
         auto imagesToShowStringList = settings->value("imagesToShow", 0).toStringList();
@@ -297,7 +308,7 @@ namespace visionx
     {
         settings->setValue("providerName", QString(properties.providerName.c_str()));
         settings->setValue("frameRate", properties.frameRate);
-        settings->setValue("outputPath", QString(properties.outputPath.c_str()));
+        settings->setValue("outputPath", QString(properties.outputDirectory.c_str()));
         settings->setValue("imageBufferSize", properties.imageBufferSize);
         settings->setValue("bufferFps", QString::number(static_cast<double>(properties.bufferFps)));
         QStringList l;
@@ -447,7 +458,7 @@ namespace visionx
     std::string ImageMonitorWidgetController::getAbsoluteOutputPath()
     {
         namespace fs = std::filesystem;
-        fs::path absPath = fs::absolute(fs::path(properties.outputPath));
+        fs::path absPath = fs::absolute(fs::path(properties.outputDirectory));
         return absPath.string();
     }
 
diff --git a/source/VisionX/gui-plugins/ImageMonitor/ImageMonitorWidgetController.h b/source/VisionX/gui-plugins/ImageMonitor/ImageMonitorWidgetController.h
index 7ca3ae91fc5baf0b50650086665ae1fa9c4a9ac5..61bb4a47e675684a5ee82159508b78f1a0665d8b 100644
--- a/source/VisionX/gui-plugins/ImageMonitor/ImageMonitorWidgetController.h
+++ b/source/VisionX/gui-plugins/ImageMonitor/ImageMonitorWidgetController.h
@@ -27,11 +27,15 @@
 // STD/STL
 #include <mutex>
 #include <optional>
+// <filesystem> needs to be down here. Otherwise, for some reason,
+// the Qt AutoMoc will say: 'Parse error at "std"'
+#include <filesystem>
 #include <queue>
 #include <set>
 #include <string>
 #include <vector>
 
+
 // Boost
 #include <boost/circular_buffer.hpp>
 
@@ -89,7 +93,7 @@ namespace visionx
 
         std::string providerName;
         int frameRate;
-        std::string outputPath;
+        std::filesystem::path outputDirectory;
         int imageBufferSize;
         float bufferFps;
         std::set<size_t> imagesToShow;