diff --git a/test/src/unit-class_parser.cpp b/test/src/unit-class_parser.cpp
index 3e309469..17d97474 100644
--- a/test/src/unit-class_parser.cpp
+++ b/test/src/unit-class_parser.cpp
@@ -1415,6 +1415,89 @@ TEST_CASE("parser class")
             });
             CHECK(j_empty_array == json());
         }
+
+        SECTION("skip in GeoJSON")
+        {
+            auto geojsonExample = R"(
+              { "type": "FeatureCollection",
+                "features": [
+                  { "type": "Feature",
+                    "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
+                    "properties": {"prop0": "value0"}
+                    },
+                  { "type": "Feature",
+                    "geometry": {
+                      "type": "LineString",
+                      "coordinates": [
+                        [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
+                        ]
+                      },
+                    "properties": {
+                      "prop0": "value0",
+                      "prop1": 0.0
+                      }
+                    },
+                  { "type": "Feature",
+                     "geometry": {
+                       "type": "Polygon",
+                       "coordinates": [
+                         [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
+                           [100.0, 1.0], [100.0, 0.0] ]
+                         ]
+                     },
+                     "properties": {
+                       "prop0": "value0",
+                       "prop1": {"this": "that"}
+                       }
+                     }
+                   ]
+                 })";
+
+            json::parser_callback_t cb = [&](int depth, json::parse_event_t event, json & parsed)
+            {
+                // skip uninteresting events
+                if (event == json::parse_event_t::value and !parsed.is_primitive())
+                {
+                    return false;
+                }
+
+                switch (event)
+                {
+                    case json::parse_event_t::key:
+                    {
+                        return true;
+                    }
+                    case json::parse_event_t::value:
+                    {
+                        return false;
+                    }
+                    case json::parse_event_t::object_start:
+                    {
+                        return true;
+                    }
+                    case json::parse_event_t::object_end:
+                    {
+                        return false;
+                    }
+                    case json::parse_event_t::array_start:
+                    {
+                        return true;
+                    }
+                    case json::parse_event_t::array_end:
+                    {
+                        return false;
+                    }
+
+                    default:
+                    {
+                        return true;
+                    }
+                }
+            };
+
+            auto j = json::parse(geojsonExample, cb, true);
+            CHECK(j == json());
+        }
     }
 
     SECTION("constructing from contiguous containers")