diff --git a/src/rest/util.py b/src/rest/util.py
index 527d1424c3d5563073b18b4da1a9904b2cb6b62b..ae481251bd02adeacc7374943b0897831cf87cd9 100644
--- a/src/rest/util.py
+++ b/src/rest/util.py
@@ -23,11 +23,25 @@ def _deserialize(data, klass):
         return deserialize_date(data)
     elif klass == datetime.datetime:
         return deserialize_datetime(data)
-    elif type(klass) == typing.GenericMeta:
-        if klass.__extra__ == list:
+
+    # NOTE: Due to Pyton 3.7 not providing `typing.GenericMeta` anymore,
+    # this workaround is needed (See https://github.com/swagger-api/swagger-codegen/issues/8921)
+    # As soon this has been fixed in SwaggerHub Codegen this class can 
+    # be replaced by the generated one again.
+    #
+    elif hasattr(klass, '__origin__'):
+        if klass.__origin__ == list:
             return _deserialize_list(data, klass.__args__[0])
-        if klass.__extra__ == dict:
+        if klass.__origin__ == dict:
             return _deserialize_dict(data, klass.__args__[1])
+
+    # Original generated fragment by Codegen (pre Python 3.7 compatible only):
+    #
+    # elif type(klass) == typing.GenericMeta:
+    #     if klass.__extra__ == list:
+    #         return _deserialize_list(data, klass.__args__[0])
+    #     if klass.__extra__ == dict:
+    #         return _deserialize_dict(data, klass.__args__[1])
     else:
         return deserialize_model(data, klass)