diff --git a/dnadna/utils/jsonschema.py b/dnadna/utils/jsonschema.py
index 40a6a206495e192f3076a7590436a55aea4f9ea9..43c7d44469ded8adad1aa072bac813319428ac04 100644
--- a/dnadna/utils/jsonschema.py
+++ b/dnadna/utils/jsonschema.py
@@ -265,52 +265,97 @@ def make_config_validator(validator_cls=jsonschema.Draft7Validator,
     # ``validator_cls`` (`jsonschema.Draft7Validator` by default)
     # This is to work around the issue in
     # https://github.com/python-jsonschema/jsonschema/issues/1197
-    validator_cls = jsonschema.validators.create(
-        meta_schema=make_config_meta_schema(validator_cls.META_SCHEMA),
-        validators={
-            "$dynamicRef": _keywords.dynamicRef,
-            "$ref": _keywords.ref,
-            "additionalProperties": _keywords.additionalProperties,
-            "allOf": _keywords.allOf,
-            "anyOf": _keywords.anyOf,
-            "const": _keywords.const,
-            "contains": _keywords.contains,
-            "dependentRequired": _keywords.dependentRequired,
-            "dependentSchemas": _keywords.dependentSchemas,
-            "enum": _keywords.enum,
-            "exclusiveMaximum": _keywords.exclusiveMaximum,
-            "exclusiveMinimum": _keywords.exclusiveMinimum,
-            "format": _keywords.format,
-            "if": _keywords.if_,
-            "items": _keywords.items,
-            "maxItems": _keywords.maxItems,
-            "maxLength": _keywords.maxLength,
-            "maxProperties": _keywords.maxProperties,
-            "maximum": _keywords.maximum,
-            "minItems": _keywords.minItems,
-            "minLength": _keywords.minLength,
-            "minProperties": _keywords.minProperties,
-            "minimum": _keywords.minimum,
-            "multipleOf": _keywords.multipleOf,
-            "not": _keywords.not_,
-            "oneOf": _keywords.oneOf,
-            "pattern": _keywords.pattern,
-            "patternProperties": _keywords.patternProperties,
-            "prefixItems": _keywords.prefixItems,
-            "properties": validate_config_properties,
-            "propertyNames": _keywords.propertyNames,
-            "required": _keywords.required,
-            "type": _keywords.type,
-            "unevaluatedItems": _keywords.unevaluatedItems,
-            "unevaluatedProperties": _keywords.unevaluatedProperties,
-            "uniqueItems": _keywords.uniqueItems,
-        },
-        type_checker=type_checker,
-        format_checker=format_checker,
-        version="draft7",
-        id_of=referencing.jsonschema.DRAFT7.id_of,
-        applicable_validators=_legacy_keywords.ignore_ref_siblings,
-    )
+    if validator_cls.__name__ == 'Draft7Validator':
+        validator_cls = jsonschema.validators.create(
+            meta_schema=make_config_meta_schema(validator_cls.META_SCHEMA),
+            validators={
+                "$dynamicRef": _keywords.dynamicRef,
+                "$ref": _keywords.ref,
+                "additionalProperties": _keywords.additionalProperties,
+                "allOf": _keywords.allOf,
+                "anyOf": _keywords.anyOf,
+                "const": _keywords.const,
+                "contains": _keywords.contains,
+                "dependentRequired": _keywords.dependentRequired,
+                "dependentSchemas": _keywords.dependentSchemas,
+                "enum": _keywords.enum,
+                "exclusiveMaximum": _keywords.exclusiveMaximum,
+                "exclusiveMinimum": _keywords.exclusiveMinimum,
+                "format": _keywords.format,
+                "if": _keywords.if_,
+                "items": _keywords.items,
+                "maxItems": _keywords.maxItems,
+                "maxLength": _keywords.maxLength,
+                "maxProperties": _keywords.maxProperties,
+                "maximum": _keywords.maximum,
+                "minItems": _keywords.minItems,
+                "minLength": _keywords.minLength,
+                "minProperties": _keywords.minProperties,
+                "minimum": _keywords.minimum,
+                "multipleOf": _keywords.multipleOf,
+                "not": _keywords.not_,
+                "oneOf": _keywords.oneOf,
+                "pattern": _keywords.pattern,
+                "patternProperties": _keywords.patternProperties,
+                "prefixItems": _keywords.prefixItems,
+                "properties": validate_config_properties,
+                "propertyNames": _keywords.propertyNames,
+                "required": _keywords.required,
+                "type": _keywords.type,
+                "unevaluatedItems": _keywords.unevaluatedItems,
+                "unevaluatedProperties": _keywords.unevaluatedProperties,
+                "uniqueItems": _keywords.uniqueItems,
+            },
+            type_checker=type_checker,
+            format_checker=format_checker,
+            version="draft7",
+            id_of=referencing.jsonschema.DRAFT7.id_of,
+            applicable_validators=_legacy_keywords.ignore_ref_siblings,
+        )
+    elif validator_cls.__name__ == 'Draft6Validator':
+        validator_cls = jsonschema.validators.create(
+            meta_schema=make_config_meta_schema(validator_cls.META_SCHEMA),
+            validators={
+                "$ref": _keywords.ref,
+                "additionalItems": _legacy_keywords.additionalItems,
+                "additionalProperties": _keywords.additionalProperties,
+                "allOf": _keywords.allOf,
+                "anyOf": _keywords.anyOf,
+                "const": _keywords.const,
+                "contains": _legacy_keywords.contains_draft6_draft7,
+                "dependencies": _legacy_keywords.dependencies_draft4_draft6_draft7,
+                "enum": _keywords.enum,
+                "exclusiveMaximum": _keywords.exclusiveMaximum,
+                "exclusiveMinimum": _keywords.exclusiveMinimum,
+                "format": _keywords.format,
+                "items": _legacy_keywords.items_draft6_draft7_draft201909,
+                "maxItems": _keywords.maxItems,
+                "maxLength": _keywords.maxLength,
+                "maxProperties": _keywords.maxProperties,
+                "maximum": _keywords.maximum,
+                "minItems": _keywords.minItems,
+                "minLength": _keywords.minLength,
+                "minProperties": _keywords.minProperties,
+                "minimum": _keywords.minimum,
+                "multipleOf": _keywords.multipleOf,
+                "not": _keywords.not_,
+                "oneOf": _keywords.oneOf,
+                "pattern": _keywords.pattern,
+                "patternProperties": _keywords.patternProperties,
+                "properties": validate_config_properties,
+                "propertyNames": _keywords.propertyNames,
+                "required": _keywords.required,
+                "type": _keywords.type,
+                "uniqueItems": _keywords.uniqueItems,
+            },
+            type_checker=type_checker,
+            format_checker=format_checker,
+            version="draft6",
+            id_of=referencing.jsonschema.DRAFT6.id_of,
+            applicable_validators=_legacy_keywords.ignore_ref_siblings,
+        )
+    else:
+        raise ValueError("Only supported Draft-06 (minimum) or Draft-07 JSON Schemas")
 
     return validator_cls
 
diff --git a/tests/test_schemas.py b/tests/test_schemas.py
index 26327ca26b4f9bde08ebabc1b39c2f6a7f22dd7d..abaff8a532efd353b4c2d92a024e00365c297bb2 100644
--- a/tests/test_schemas.py
+++ b/tests/test_schemas.py
@@ -15,7 +15,7 @@ from dnadna.examples.one_event import DEFAULT_ONE_EVENT_CONFIG
 from dnadna.nets import Network
 from dnadna.utils.config import ConfigError, Config, load_dict
 from dnadna.utils.jsonschema import (make_config_meta_schema, SCHEMA_DIRS,
-        SCHEMA_SUPPORTED_VERSIONS)
+        SCHEMA_SUPPORTED_VERSIONS, make_config_validator)
 from dnadna.utils.plugins import Pluggable
 from dnadna.utils.misc import parse_format
 
@@ -75,16 +75,14 @@ def test_schemas_valid(schema, validator):
 
     # extend the validator to also check our extended meta-schema with support
     # for errorMsg
-    class TestValidator(validator):
-        META_SCHEMA = make_config_meta_schema(validator.META_SCHEMA)
-
-        def __init__(self, *args, **kwargs):
-            # We have to extend __init__ because the default implementation
-            # of validator.check_schema doesn't allow passing a
-            # format_checker
-            super().__init__(*args, **kwargs)
-            self.format_checker = format_checker
-
+    TestValidator = jsonschema.validators.create(
+        meta_schema=make_config_meta_schema(validator.META_SCHEMA),
+        validators=validator.VALIDATORS,
+        type_checker=validator.TYPE_CHECKER,
+        format_checker=format_checker,
+        version=validator.__name__[:6]
+        )
+    
     # NOTE: We leave the full directory name out of the 'schema' parameter for
     # cleaner output when running `pytest -v`; instead join the filename with
     # the SCHEMA_DIR here.