diff --git a/source/armarx/navigation/algorithms/astar/util.cpp b/source/armarx/navigation/algorithms/astar/util.cpp
index abc91b031633988a1d5271af700abe0d153c6d58..e475d3f93f0ee3e3748510544baf4bb62d6d1c73 100644
--- a/source/armarx/navigation/algorithms/astar/util.cpp
+++ b/source/armarx/navigation/algorithms/astar/util.cpp
@@ -2,30 +2,32 @@
 
 #include <cstddef>
 
-#include <Eigen/src/Core/util/Meta.h>
-
 #include <opencv2/core.hpp>
 #include <opencv2/core/mat.hpp>
 #include <opencv2/opencv.hpp>
 
-#include "ArmarXCore/core/logging/Logging.h"
+#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
+#include <ArmarXCore/core/logging/Logging.h>
 
 namespace armarx::navigation
 {
     void
     dumpToFile(const Eigen::MatrixXf& grid)
     {
-
         ARMARX_INFO << "Dumping to file.";
-
         ARMARX_INFO << "Shape: " << grid.rows() << ", " << grid.cols();
-        cv::Size size(grid.rows(), grid.cols());
+
+        // pedantic checks to prevent underflow below
+        ARMARX_CHECK_GREATER(grid.rows(), 0);
+        ARMARX_CHECK_GREATER(grid.cols(), 0);
+
+        const cv::Size size(static_cast<int>(grid.rows()), static_cast<int>(grid.cols()));
 
         cv::Mat1f mat(size);
 
-        for (size_t r = 0; r < grid.rows(); r++)
+        for (int r = 0; r < grid.rows(); r++)
         {
-            for (size_t c = 0; c < grid.cols(); c++)
+            for (int c = 0; c < grid.cols(); c++)
             {
                 mat(cv::Point(r, c)) = grid(r, c);
             }