diff --git a/src/falcon_oas/oas/schema/validators.py b/src/falcon_oas/oas/schema/validators.py
index e853bb4..a8b09fd 100644
--- a/src/falcon_oas/oas/schema/validators.py
+++ b/src/falcon_oas/oas/schema/validators.py
@@ -19,7 +19,20 @@ def _type_validator(validator, types, instance, schema):
         yield error
 
 
-_Validator = validators.extend(Draft4Validator, {'type': _type_validator})
+_enum_draft4_validator = Draft4Validator.VALIDATORS['enum']
+
+
+def _enum_validator(validator, enums, instance, schema):
+    if instance is None and schema.get('nullable'):
+        return
+
+    for error in _enum_draft4_validator(validator, enums, instance, schema):
+        yield error
+
+
+_Validator = validators.extend(
+    Draft4Validator, {'type': _type_validator, 'enum': _enum_validator}
+)
 
 
 class SchemaValidator(object):

diff --git a/tests/oas/schema/test_unmarshalers.py b/tests/oas/schema/test_unmarshalers.py
index 4783e5f..f94bde3 100644
--- a/tests/oas/schema/test_unmarshalers.py
+++ b/tests/oas/schema/test_unmarshalers.py
@@ -56,6 +56,13 @@ def test_unmarshal_primitive_without_formats():
     assert unmarshaled == instance
 
 
+def test_unmarshal_primitive_enum():
+    schema = {'type': 'string', 'enum': ['a', 'b']}
+    instance = 'a'
+    unmarshaled = SchemaUnmarshaler().unmarshal(instance, schema)
+    assert unmarshaled == 'a'
+
+
 def test_unmarshal_array():
     schema = {'type': 'array', 'items': {'type': 'string', 'format': 'date'}}
     instance = ['2018-01-02', '2018-02-03', '2018-03-04']
@@ -164,6 +171,7 @@ def test_unmarshal_one_of_or_any_of(schema_type):
         {'type': 'array', 'nullable': True},
         {'type': 'object', 'nullable': True},
         {'type': 'string', 'format': 'date', 'nullable': True},
+        {'type': 'string', 'enum': ['a', 'b'], 'nullable': True},
     ],
 )
 def test_unmarshal_nullable(schema):
diff --git a/tests/oas/schema/test_validators.py b/tests/oas/schema/test_validators.py
index f0666d1..4a9bce8 100644
--- a/tests/oas/schema/test_validators.py
+++ b/tests/oas/schema/test_validators.py
@@ -37,6 +37,18 @@ def test_validate_error(validator):
     assert exc_info.value.errors[0].message == message
 
 
+def test_validate_enum_error(validator):
+    schema = {'type': str('string'), 'enum': [str('a'), str('b')]}
+    instance = str('c')
+    message = "'c' is not one of ['a', 'b']"
+
+    with pytest.raises(ValidationError) as exc_info:
+        validator.validate(instance, schema)
+
+    assert len(exc_info.value.errors) == 1
+    assert exc_info.value.errors[0].message == message
+
+
 def test_validate_format_string(validator):
     schema = {'type': 'string', 'format': 'date'}
     instance = '2018-01-02'

Support nullable enum
Same as #3, just for `enum`.
tests/oas/schema/test_unmarshalers.py::test_unmarshal_nullable[schema4]
tests/oas/schema/test_unmarshalers.py::test_unmarshal_validation_error tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive[schema0-True] tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive[schema1-False] tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive[schema2-0.0] tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive[schema3-2.0] tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive[schema4-0] tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive[schema5-2] tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive[schema6-foo] tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive_format tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive_without_formats tests/oas/schema/test_unmarshalers.py::test_unmarshal_primitive_enum tests/oas/schema/test_unmarshalers.py::test_unmarshal_array tests/oas/schema/test_unmarshalers.py::test_unmarshal_object tests/oas/schema/test_unmarshalers.py::test_unmarshal_object_properties_and_additional_properties[None-None-expected0] tests/oas/schema/test_unmarshalers.py::test_unmarshal_object_properties_and_additional_properties[None-True-expected1] tests/oas/schema/test_unmarshalers.py::test_unmarshal_object_properties_and_additional_properties[None-additional_properties2-expected2] tests/oas/schema/test_unmarshalers.py::test_unmarshal_object_properties_and_additional_properties[None-additional_properties3-expected3] tests/oas/schema/test_unmarshalers.py::test_unmarshal_object_properties_and_additional_properties[properties4-None-expected4] tests/oas/schema/test_unmarshalers.py::test_unmarshal_object_properties_and_additional_properties[properties5-True-expected5] tests/oas/schema/test_unmarshalers.py::test_unmarshal_object_properties_and_additional_properties[properties6-additional_properties6-expected6] tests/oas/schema/test_unmarshalers.py::test_unmarshal_object_properties_and_additional_properties[properties7-additional_properties7-expected7] tests/oas/schema/test_unmarshalers.py::test_unmarshal_all_of tests/oas/schema/test_unmarshalers.py::test_unmarshal_all_of_required_only tests/oas/schema/test_unmarshalers.py::test_unmarshal_one_of_or_any_of[oneOf] tests/oas/schema/test_unmarshalers.py::test_unmarshal_one_of_or_any_of[anyOf] tests/oas/schema/test_unmarshalers.py::test_unmarshal_nullable[schema0] tests/oas/schema/test_unmarshalers.py::test_unmarshal_nullable[schema1] tests/oas/schema/test_unmarshalers.py::test_unmarshal_nullable[schema2] tests/oas/schema/test_unmarshalers.py::test_unmarshal_nullable[schema3] tests/oas/schema/test_validators.py::test_validate_success tests/oas/schema/test_validators.py::test_validate_error tests/oas/schema/test_validators.py::test_validate_enum_error tests/oas/schema/test_validators.py::test_validate_format_string tests/oas/schema/test_validators.py::test_validate_format_string_error tests/oas/schema/test_validators.py::test_validate_format_integer[-2147483648] tests/oas/schema/test_validators.py::test_validate_format_integer[0] tests/oas/schema/test_validators.py::test_validate_format_integer[2147483647] tests/oas/schema/test_validators.py::test_validate_format_integer_error[-2147483649] tests/oas/schema/test_validators.py::test_validate_format_integer_error[2147483648] tests/oas/schema/test_validators.py::test_validate_format_type_error tests/oas/schema/test_validators.py::test_validate_format_error_without_format_checker tests/oas/schema/test_validators.py::test_validate_nullable_success[foo-False] tests/oas/schema/test_validators.py::test_validate_nullable_success[foo-True] tests/oas/schema/test_validators.py::test_validate_nullable_success[None-True] tests/oas/schema/test_validators.py::test_validate_nullable_error tests/oas/schema/test_validators.py::test_validate_nullable_with_format