diff --git a/mongo_connector/doc_managers/solr_doc_manager.py b/mongo_connector/doc_managers/solr_doc_manager.py
index <HASH>..<HASH> 100755
--- a/mongo_connector/doc_managers/solr_doc_manager.py
+++ b/mongo_connector/doc_managers/solr_doc_manager.py
@@ -167,7 +167,13 @@ class DocManager(DocManagerBase):
                 doc.pop(key)
             doc[to_set] = value
         for to_unset in update_spec.get("$unset", []):
-            doc.pop(to_unset)
+            # MongoDB < 2.5.2 reports $unset for fields that don't exist within
+            # the document being updated.
+            if to_unset in doc:
+                doc.pop(to_unset)
+            else:
+                raise errors.UpdateDoesNotApply("Cannot apply update %r to %r"
+                                                % (update_spec, doc))
         return doc
 
     @wrap_exceptions
Be aware of the case where $unset may not apply to a document in Solr.