Index: jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/PropertyEntryImpl.java
===================================================================
--- jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/PropertyEntryImpl.java	(revision 896921)
+++ jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/hierarchy/PropertyEntryImpl.java	(working copy)
@@ -127,7 +127,10 @@
                       existing and has been modified. removal, add and implicit modification
                       of protected properties must be persisted by save on parent.
                 */
-                op.getPropertyState().setStatus(Status.EXISTING);
+                PropertyState state = getPropertyState();
+                if (state.getStatus() != Status.REMOVED) {
+                    op.getPropertyState().setStatus(Status.EXISTING);
+                }
                 break;
             case Operation.STATUS_UNDO:
                 revert();
Index: jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/UpdateTest.java
===================================================================
--- jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/UpdateTest.java	(revision 896921)
+++ jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/UpdateTest.java	(working copy)
@@ -16,10 +16,8 @@
  */
 package org.apache.jackrabbit.jcr2spi;
 
-import org.apache.jackrabbit.test.AbstractJCRTest;
-import org.apache.jackrabbit.test.NotExecutableException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.util.Arrays;
+import java.util.List;
 
 import javax.jcr.InvalidItemStateException;
 import javax.jcr.ItemNotFoundException;
@@ -29,9 +27,12 @@
 import javax.jcr.Property;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
-import java.util.Arrays;
-import java.util.List;
 
+import org.apache.jackrabbit.test.AbstractJCRTest;
+import org.apache.jackrabbit.test.NotExecutableException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 /**
  * <code>UpdateTest</code>...
  */
@@ -208,6 +209,18 @@
         }
     }
 
+    /**
+     * @see JCR-2462
+     */
+    public void testSetSamePropertyTwice() throws RepositoryException {
+        Node node = this.testRootNode.addNode( "test" );
+        Session session = node.getSession();
+        node.setProperty( "prop", "value1");
+        node.setProperty( "prop", "value2");
+        node.remove();
+        session.save();
+    }
+
     private String getAnotherWorkspace() throws NotExecutableException, RepositoryException {
         String srcWorkspace = getHelper().getProperty("org.apache.jackrabbit.jcr2spi.workspace2.name");;
         if (srcWorkspace == null || srcWorkspace.equals(currentWorkspace)) {
