diff --git a/Allura/allura/model/discuss.py b/Allura/allura/model/discuss.py
index 25510c8..b3cf04b 100644
--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -600,11 +600,13 @@
 
     @property
     def subject(self):
-        subject = self.thread.subject
-        if not subject:
-            artifact = self.thread.artifact
-            if artifact:
-                subject = getattr(artifact, 'email_subject', '')
+        subject = None
+        if self.thread:
+            subject = self.thread.subject
+            if not subject:
+                artifact = self.thread.artifact
+                if artifact:
+                    subject = getattr(artifact, 'email_subject', '')
         return subject or '(no subject)'
 
     @LazyProperty
diff --git a/Allura/allura/tests/model/test_discussion.py b/Allura/allura/tests/model/test_discussion.py
index 2ff36f4..27f83cf 100644
--- a/Allura/allura/tests/model/test_discussion.py
+++ b/Allura/allura/tests/model/test_discussion.py
@@ -541,3 +541,18 @@
     p1 = M.Post(discussion_id=d._id, thread_id=t._id, status='spam')
     p1.spam()
     assert_equal(t.num_replies, 1)
+
+
+def test_deleted_thread_index():
+    d = M.Discussion(shortname='test', name='test')
+    t = M.Thread(discussion_id=d._id, subject='Test Thread')
+    p = M.Post(discussion_id=d._id, thread_id=t._id, status='ok')
+    t.delete()
+    ThreadLocalORMSession.flush_all()
+
+    # re-query, so relationships get reloaded
+    ThreadLocalORMSession.close_all()
+    p = M.Post.query.get(_id=p._id)
+
+    # just make sure this doesn't fail
+    p.index()
\ No newline at end of file
