diff --git a/owlmixin/__init__.py b/owlmixin/__init__.py
index <HASH>..<HASH> 100644
--- a/owlmixin/__init__.py
+++ b/owlmixin/__init__.py
@@ -59,6 +59,8 @@ def traverse(
         assert_none(value, type_, cls, name)
         if type_ is any:
             return value
+        if isinstance(value, type_):
+            return value
         if issubclass(type_, OwlMixin):
             assert_types(value, (type_, dict), cls, name)
             return type_.from_dict(
diff --git a/tests/test_OwlObjectEnum.py b/tests/test_OwlObjectEnum.py
index <HASH>..<HASH> 100644
--- a/tests/test_OwlObjectEnum.py
+++ b/tests/test_OwlObjectEnum.py
@@ -48,6 +48,14 @@ class TestFunction:
 
 
 class TestOwlMixin:
+    def test_from_dict(self):
+        ins: Sample = Sample.from_dict({"color": "blue"})
+        assert ins.color == Color.BLUE
+
+    def test_from_dict_includes_instance(self):
+        ins: Sample = Sample.from_dict({"color": Color.BLUE})
+        assert ins.color == Color.BLUE
+
     def test_to_dict(self):
         assert Sample.from_dict({"color": "blue"}).to_dict() == {
             "color": "blue"
:skull: Fix Issue #<I>