diff --git a/python_jsonschema_objects/classbuilder.py b/python_jsonschema_objects/classbuilder.py
index c01fdcc..3a5ca41 100644
--- a/python_jsonschema_objects/classbuilder.py
+++ b/python_jsonschema_objects/classbuilder.py
@@ -145,7 +145,7 @@ class ProtocolBase(collections.MutableMapping):
         else:  # We got nothing
             raise validators.ValidationError(
                 "Unable to instantiate any valid types: \n"
-                "\n".join("{0}: {1}".format(k, e) for k, e in validation_errors)
+                "".join("{0}: {1}\n".format(k, e) for k, e in validation_errors)
             )
 
         return obj
@@ -314,7 +314,7 @@ class TypeProxy(object):
         else:  # We got nothing
             raise validators.ValidationError(
                 "Unable to instantiate any valid types: \n"
-                "\n".join("{0}: {1}".format(k, e) for k, e in validation_errors)
+                "".join("{0}: {1}\n".format(k, e) for k, e in validation_errors)
             )
 
 
@@ -474,6 +474,18 @@ class ClassBuilder(object):
                 **clsdata_copy)
             return self.resolved[uri]
 
+        elif isinstance(clsdata.get('type'), list):
+            types = []
+            for i, item_detail in enumerate(clsdata['type']):
+                subdata = {k: v for k, v in six.iteritems(clsdata) if k != 'type'}
+                subdata['type'] = item_detail
+                types.append(self._build_literal(
+                    uri + "_%s" % i,
+                    subdata))
+
+            self.resolved[uri] = TypeProxy(types)
+            return self.resolved[uri]
+
         elif (clsdata.get('type', None) == 'object' or
               clsdata.get('properties', None) is not None or
               clsdata.get('additionalProperties', False)):
@@ -770,6 +782,10 @@ def make_property(prop, info, desc=""):
                 val = info['type'](**util.coerce_for_expansion(val))
 
             val.validate()
+
+        elif isinstance(info['type'], TypeProxy):
+            val = info['type'](val)
+
         elif info['type'] is None:
             # This is the null value
             if val is not None:

Properties with multiple types are not parsed correctly
http://json-schema.org/latest/json-schema-validation.html#anchor79

Example property

        "claimed_by": {
            "id": "claimed",
            "type": ["string", "null"],
            "description": "Robots Only. The human agent that has claimed this robot.",
            "required": false
        },

Traceback (most recent call last):
  File "/home/idanforth/fetch/src/sandbox/fetchcore/test/unit/test_scheduler.py", line 58, in setUp
    agent_ns = agent_builder.build_classes()
  File "/usr/local/lib/python2.7/dist-packages/python_jsonschema_objects/__init__.py", line 83, in build_classes
    builder.construct(nm, self.schema)
  File "/usr/local/lib/python2.7/dist-packages/python_jsonschema_objects/classbuilder.py", line 288, in construct
    ret = self._construct(uri, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/python_jsonschema_objects/classbuilder.py", line 362, in _construct
    parent)
  File "/usr/local/lib/python2.7/dist-packages/python_jsonschema_objects/classbuilder.py", line 498, in _build_object
    typ = self.construct(uri, detail)
  File "/usr/local/lib/python2.7/dist-packages/python_jsonschema_objects/classbuilder.py", line 288, in construct
    ret = self._construct(uri, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/python_jsonschema_objects/classbuilder.py", line 380, in _construct
    "no type and no reference".format(clsdata))
NotImplementedError: Unable to parse schema object '{'raw_name': u'claimed_by', u'required': False, u'type': [u'string'
, u'null'], u'id': u'claimed', u'description': u'Robots Only. The human agent that has claimed this robot.'}' with no t
ype and no reference

diff --git a/test/test_regression_17.py b/test/test_regression_17.py
new file mode 100644
index 0000000..c13e942
--- /dev/null
+++ b/test/test_regression_17.py
@@ -0,0 +1,33 @@
+import pytest
+
+import python_jsonschema_objects as pjo
+
+
+@pytest.fixture
+def test_class():
+    schema =  {
+        'title': 'Example',
+        'properties': {
+            "claimed_by": {
+                "id": "claimed",
+                "type": ["string", "integer", "null"],
+                "description": "Robots Only. The human agent that has claimed this robot.",
+                "required": False
+                },
+            }
+        }
+
+    builder = pjo.ObjectBuilder(schema)
+    ns = builder.build_classes()
+    return ns
+
+
+@pytest.mark.parametrize('value', [
+    "Hi", 4, None])
+def test_properties_can_have_multiple_types(test_class, value):
+    test_class.Example(claimed_by=value)
+
+@pytest.mark.parametrize('value', [2.4])
+def test_multiply_typed_properties_still_validate(test_class, value):
+    with pytest.raises(pjo.ValidationError):
+        test_class.Example(claimed_by=value)

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio
3.5
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==22.2.0
certifi==2021.5.30
coverage==6.2
execnet==1.9.0
importlib-metadata==4.8.3
inflection==0.2.0
iniconfig==1.1.1
jsonschema==2.3.0
Markdown==2.4
packaging==21.3
pandocfilters==1.2
pluggy==1.0.0
py==1.11.0
pyparsing==3.1.4
pytest==7.0.1
pytest-asyncio==0.16.0
pytest-cov==4.0.0
pytest-mock==3.6.1
pytest-xdist==3.0.2
-e git+https://github.com/cwacek/python-jsonschema-objects.git@ad1ce37fe82cdfa75a8193566c7c7cdcae07b09c#egg=python_jsonschema_objects
six==1.17.0
tomli==1.2.3
typing_extensions==4.1.1
zipp==3.6.0

name: python-jsonschema-objects
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2021.5.30=py36h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.3=he6710b0_2
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=21.2.2=py36h06a4308_0
  - python=3.6.13=h12debd9_1
  - readline=8.2=h5eee18b_0
  - setuptools=58.0.4=py36h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.37.1=pyhd3eb1b0_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==22.2.0
      - coverage==6.2
      - execnet==1.9.0
      - importlib-metadata==4.8.3
      - inflection==0.2.0
      - iniconfig==1.1.1
      - jsonschema==2.3.0
      - markdown==2.4
      - packaging==21.3
      - pandocfilters==1.2
      - pluggy==1.0.0
      - py==1.11.0
      - pyparsing==3.1.4
      - pytest==7.0.1
      - pytest-asyncio==0.16.0
      - pytest-cov==4.0.0
      - pytest-mock==3.6.1
      - pytest-xdist==3.0.2
      - six==1.17.0
      - tomli==1.2.3
      - typing-extensions==4.1.1
      - zipp==3.6.0
prefix: /opt/conda/envs/python-jsonschema-objects

test/test_regression_17.py::test_properties_can_have_multiple_types[Hi] test/test_regression_17.py::test_properties_can_have_multiple_types[4] test/test_regression_17.py::test_properties_can_have_multiple_types[None] test/test_regression_17.py::test_multiply_typed_properties_still_validate[2.4]
python_jsonschema_objects/classbuilder.py
python_jsonschema_objects/classbuilder.py