diff --git a/source/armarx/navigation/algorithms/astar/util.cpp b/source/armarx/navigation/algorithms/astar/util.cpp
index abc91b031633988a1d5271af700abe0d153c6d58..5885c48ae19c4fbe9af7e05531194cceb75b56bb 100644
--- a/source/armarx/navigation/algorithms/astar/util.cpp
+++ b/source/armarx/navigation/algorithms/astar/util.cpp
@@ -2,13 +2,12 @@
 
 #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
 {
@@ -19,13 +18,18 @@ namespace armarx::navigation
         ARMARX_INFO << "Dumping to file.";
 
         ARMARX_INFO << "Shape: " << grid.rows() << ", " << grid.cols();
+
+        // pedantic checks to prevent overflow below
+        ARMARX_CHECK_GREATER(grid.rows(), 0);
+        ARMARX_CHECK_GREATER(grid.cols(), 0);
+
         cv::Size size(grid.rows(), grid.cols());
 
         cv::Mat1f mat(size);
 
-        for (size_t r = 0; r < grid.rows(); r++)
+        for (size_t r = 0; r < static_cast<size_t>(grid.rows()); r++)
         {
-            for (size_t c = 0; c < grid.cols(); c++)
+            for (size_t c = 0; c < static_cast<size_t>(grid.cols()); c++)
             {
                 mat(cv::Point(r, c)) = grid(r, c);
             }