diff --git a/elasticsearch_dsl/field.py b/elasticsearch_dsl/field.py
index <HASH>..<HASH> 100644
--- a/elasticsearch_dsl/field.py
+++ b/elasticsearch_dsl/field.py
@@ -143,6 +143,8 @@ class InnerObject(object):
             our[name] = other[name]
 
     def _to_python(self, data):
+        if data is None:
+            return None
         # don't wrap already wrapped data
         if isinstance(data, self._doc_class):
             return data
diff --git a/test_elasticsearch_dsl/test_document.py b/test_elasticsearch_dsl/test_document.py
index <HASH>..<HASH> 100644
--- a/test_elasticsearch_dsl/test_document.py
+++ b/test_elasticsearch_dsl/test_document.py
@@ -32,6 +32,11 @@ class MyMultiSubDoc(MyDoc2, MySubDoc):
 class DocWithNested(document.DocType):
     comments = field.Nested(properties={'title': field.String()})
 
+def test_null_value_for_object():
+    d = MyDoc(inner=None)
+
+    assert d.inner is None
+
 def test_inherited_doc_types_can_override_index():
     class MyDocDifferentIndex(MySubDoc):
         class Meta:
Allow None as value of Object field

Fixes #<I>