diff --git a/src/accessor/grib_accessor_class_message_is_valid.cc b/src/accessor/grib_accessor_class_message_is_valid.cc
index 558b7d0d1..856fec982 100644
--- a/src/accessor/grib_accessor_class_message_is_valid.cc
+++ b/src/accessor/grib_accessor_class_message_is_valid.cc
@@ -93,6 +93,8 @@ static int check_geoiterator(grib_handle* h)
 {
     //printf("DEBUG  %s \n", __func__);
     int err = 0;
+
+#if defined(HAVE_GEOGRAPHY)
     grib_iterator* iter = grib_iterator_new(h, 0, &err);
     if (err == GRIB_NOT_IMPLEMENTED || err == GRIB_SUCCESS) {
         grib_iterator_delete(iter);
@@ -101,6 +103,8 @@ static int check_geoiterator(grib_handle* h)
 
     grib_context_log(h->context, GRIB_LOG_ERROR, "%s", grib_get_error_message(err));
     grib_iterator_delete(iter);
+#endif
+
     return err;
 }
 
diff --git a/src/geo/iterator/grib_iterator.cc b/src/geo/iterator/grib_iterator.cc
index 5c41b9be2..b215036f4 100644
--- a/src/geo/iterator/grib_iterator.cc
+++ b/src/geo/iterator/grib_iterator.cc
@@ -166,7 +166,8 @@ grib_iterator* grib_iterator_new(const grib_handle* ch, unsigned long flags, int
 
 int grib_iterator_delete(grib_iterator* i)
 {
-    grib_context_log(ch->context, GRIB_LOG_ERROR,
+    grib_context* c = grib_context_get_default();
+    grib_context_log(c, GRIB_LOG_ERROR,
                      "Geoiterator functionality not enabled. Please rebuild with -DENABLE_GEOGRAPHY=ON");
     return GRIB_FUNCTIONALITY_NOT_ENABLED;
 }
diff --git a/tests/grib_check_message_validity.sh b/tests/grib_check_message_validity.sh
index d23df8d6c..293bf73ad 100755
--- a/tests/grib_check_message_validity.sh
+++ b/tests/grib_check_message_validity.sh
@@ -24,15 +24,17 @@ grib_check_key_equals $ECCODES_SAMPLES_PATH/GRIB2.tmpl isMessageValid 1
 ${tools_dir}/grib_set -s PVPresent=1,NV=6 $ECCODES_SAMPLES_PATH/reduced_gg_pl_128_grib2.tmpl $tempGrib
 grib_check_key_equals $tempGrib isMessageValid 0 2>$tempText
 grep -q "Section 5 is missing" $tempText
-grep -q "Error instantiating iterator gaussian_reduced" $tempText
-
+if [ $HAVE_GEOGRAPHY -eq 1 ]; then
+   grep -q "Error instantiating iterator gaussian_reduced" $tempText
+fi
 
 # Check regular lat/lon
 # ------------------------------
-${tools_dir}/grib_set -s Nj=0 $data_dir/sample.grib2 $tempGrib
-grib_check_key_equals $tempGrib isMessageValid 0 2>$tempText
-grep -q "Regular grid Geoiterator" $tempText
-
+if [ $HAVE_GEOGRAPHY -eq 1 ]; then
+   ${tools_dir}/grib_set -s Nj=0 $data_dir/sample.grib2 $tempGrib
+   grib_check_key_equals $tempGrib isMessageValid 0 2>$tempText
+   grep -q "Regular grid Geoiterator" $tempText
+fi
 
 # Check reduced Gaussian grid Ni
 # ------------------------------
diff --git a/tests/grib_spectral.sh b/tests/grib_spectral.sh
index df3bf43f0..7a32647fc 100755
--- a/tests/grib_spectral.sh
+++ b/tests/grib_spectral.sh
@@ -52,7 +52,9 @@ cat > $tempFilt <<EOF
     write;
 EOF
 ${tools_dir}/grib_filter -o $tempGrib $tempFilt $sample2
-${tools_dir}/grib_get_data $tempGrib
+if [ $HAVE_GEOGRAPHY -eq 1 ]; then
+    ${tools_dir}/grib_get_data $tempGrib
+fi
 ${tools_dir}/grib_dump $tempGrib
 grib_check_key_equals $tempGrib packingType spectral_complex
 grib_check_key_equals $tempGrib gridType sh