diff --git a/structr/structr-core/src/main/java/org/structr/core/entity/AbstractRelationship.java b/structr/structr-core/src/main/java/org/structr/core/entity/AbstractRelationship.java
index <HASH>..<HASH> 100644
--- a/structr/structr-core/src/main/java/org/structr/core/entity/AbstractRelationship.java
+++ b/structr/structr-core/src/main/java/org/structr/core/entity/AbstractRelationship.java
@@ -1235,6 +1235,11 @@ public abstract class AbstractRelationship implements GraphObject, Comparable<Ab
 
 			throw new FrameworkException(type, new NullPropertyToken(key));
 		}
+		
+		// Do nothing if new id equals old
+		if (getStartNodeId().equals(startNodeId)) {
+			return;
+		}
 
 		Command transaction = Services.command(securityContext, TransactionCommand.class);
 
@@ -1290,6 +1295,11 @@ public abstract class AbstractRelationship implements GraphObject, Comparable<Ab
 
 			throw new FrameworkException(type, new NullPropertyToken(key));
 		}
+		
+		// Do nothing if new id equals old
+		if (getEndNodeId().equals(endNodeId)) {
+			return;
+		}
 
 		Command transaction = Services.command(securityContext, TransactionCommand.class);
do nothing when trying to set identical start or end node id