diff --git a/Allura/allura/tasks/index_tasks.py b/Allura/allura/tasks/index_tasks.py
index a20dcfc..0162f28 100644
--- a/Allura/allura/tasks/index_tasks.py
+++ b/Allura/allura/tasks/index_tasks.py
@@ -49,11 +49,26 @@
     solr_instance.delete(q=solr_query)
 
 
+def check_for_dirty_ming_records(msg_prefix, ming_sessions=None):
+    """
+    A debugging helper to diagnose issues with code that unintentionally modifies records, causing them to be written
+    back to mongo (potentially clobbering values written by a parallel task/request)
+    """
+    if ming_sessions is None:
+        from allura.model import main_orm_session, artifact_orm_session, project_orm_session
+        ming_sessions = [main_orm_session, artifact_orm_session, project_orm_session]
+    for sess in ming_sessions:
+        dirty_objects = list(sess.uow.dirty)
+        if dirty_objects:
+            log.warning(msg_prefix + ' changed objects, causing writes back to mongo: %s',
+                        dirty_objects)
+
 @task
 def add_projects(project_ids):
     from allura.model.project import Project
     projects = Project.query.find(dict(_id={'$in': project_ids})).all()
     __add_objects(projects)
+    check_for_dirty_ming_records('add_projects task')
 
 
 @task
@@ -116,6 +131,7 @@
         six.reraise(exceptions[0][0], exceptions[0][1], exceptions[0][2])
     if exceptions:
         raise CompoundError(*exceptions)
+    check_for_dirty_ming_records('add_artifacts task')
 
 
 @task
