diff --git a/src/grid_gme.cc b/src/grid_gme.cc
index 864dc87d6a0308d0ebb23ab0b429323d80a8374b..4696e13b98077acd45ee220c999e467f65c535b4 100644
--- a/src/grid_gme.cc
+++ b/src/grid_gme.cc
@@ -1198,8 +1198,9 @@ gme_grid(int withBounds, size_t gridsize, double *rlon, double *rlat, double *bl
   size_t inull = 0;
   for (size_t i = 0; i < gridsize; ++i)
     {
-      if ((xn[i * 3 + 0] == 0.0 || std::isnan(xn[i * 3 + 0])) && (xn[i * 3 + 1] == 0.0 || std::isnan(xn[i * 3 + 1]))
-          && (xn[i * 3 + 2] == 0.0 || std::isnan(xn[i * 3 + 2])))
+      if ((std::fabs(xn[i * 3 + 0]) <= 0 || std::isnan(xn[i * 3 + 0]))
+          && (std::fabs(xn[i * 3 + 1]) <= 0 || std::isnan(xn[i * 3 + 1]))
+          && (std::fabs(xn[i * 3 + 2]) <= 0 || std::isnan(xn[i * 3 + 2])))
         inull++;
     }
   if (inull > gridsize / 4)