Index: jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java	(revision 1308448)
+++ jackrabbit-core/src/main/java/org/apache/jackrabbit/core/ItemSaveOperation.java	(revision )
@@ -711,14 +711,17 @@
      * walk through list of transient items marked 'removed' and
      * definitively remove each one
      */
-    private void removeTransientItems(
+    private void removeTransientItems (
-            SessionItemStateManager sism, Iterable<ItemState> states) {
+            SessionItemStateManager sism, Iterable<ItemState> states) throws StaleItemStateException {
         for (ItemState transientState : states) {
             ItemState persistentState = transientState.getOverlayedState();
             // remove persistent state
             // this will indirectly (through stateDestroyed listener method)
             // permanently invalidate all Item instances wrapping it
             assert persistentState != null;
+            if (transientState.getModCount() != persistentState.getModCount()) {
+                throw new StaleItemStateException(transientState.getId() + " has been modified externally");
+            }
             sism.destroy(persistentState);
         }
     }
\ No newline at end of file
