Index: src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java
===================================================================
--- src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java	(revision 28931)
+++ src/main/java/org/apache/jackrabbit/core/query/lucene/MultiIndex.java	(working copy)
@@ -353,6 +353,8 @@
             while (add.hasNext()) {
                 Document doc = (Document) add.next();
                 if (doc != null) {
+                    // JCR-905: race condition may cause duplicate entries in search index
+                    executeAndLog(new DeleteNode(transactionId, UUID.fromString(doc.get(FieldNames.UUID))));
                     executeAndLog(new AddNode(transactionId, doc));
                     // commit volatile index if needed
                     flush |= checkVolatileCommit();
