diff --git a/product/ERP5/Document/Document.py b/product/ERP5/Document/Document.py
index 58f64a1b3af058f88edd3335761f3fa27c2aeb17..379a29cd23873eb1065f9d5c6104d45f9bf53fd4 100644
--- a/product/ERP5/Document/Document.py
+++ b/product/ERP5/Document/Document.py
@@ -326,7 +326,9 @@ class Document(DocumentExtensibleTraversableMixin, XMLObject, UrlMixin,
       certain defined at system level preferences format.
     """
     reference = self.getReference()
-    return len(self._getSearchableReferenceList(reference))
+    if reference is not None:
+      return len(self._getSearchableReferenceList(reference))
+    return False
 
   def _getSearchableReferenceList(self, text):
     """
diff --git a/product/ERP5OOo/tests/testDms.py b/product/ERP5OOo/tests/testDms.py
index 7f834c9f85b3f5225be929b84df459694ce207e4..69d3614f1c65bec99db296633b482e29728d8dac 100644
--- a/product/ERP5OOo/tests/testDms.py
+++ b/product/ERP5OOo/tests/testDms.py
@@ -596,6 +596,13 @@ class TestDocument(TestDocumentMixin):
       [document3],
       sqlresult_to_document_list(document5.getImplicitSuccessorValueList()))
 
+    # with empty reference no implicit relation should exists even though some documents
+    # used to reference us with previous reference
+    document1.setReference(None)
+    self.tic()
+    self.assertSameSet([],
+      sqlresult_to_document_list(document1.getImplicitPredecessorValueList()))
+
   def testOOoDocument_get_size(self):
     # test get_size on OOoDocument
     doc = self.portal.document_module.newContent(portal_type='Spreadsheet')