diff --git a/federation-controller-backend/src/main/scala/acab/devcon0/domain/adapters/federationmember/SharingFolderUpdateCommandHandlerImpl.scala b/federation-controller-backend/src/main/scala/acab/devcon0/domain/adapters/federationmember/SharingFolderUpdateCommandHandlerImpl.scala
index 500443cc8b6f85bef99ea62755bada5b347e4f93..c7f479d12765c95ebd62e9e4744853d69460bd70 100644
--- a/federation-controller-backend/src/main/scala/acab/devcon0/domain/adapters/federationmember/SharingFolderUpdateCommandHandlerImpl.scala
+++ b/federation-controller-backend/src/main/scala/acab/devcon0/domain/adapters/federationmember/SharingFolderUpdateCommandHandlerImpl.scala
@@ -51,17 +51,24 @@ class SharingFolderUpdateCommandHandlerImpl(
   ): IO[Option[FederationMemberChangelogItem]] = {
     getSharedFolderChangeLogItem(memberInformation)
       .flatMap {
-        case Some(timestamp) if !isNewerMessage(timestamp, message) => logOutOfOrderCase(message, timestamp)
+        case Some(changelogItem) if !isMessageNewerAndDifferent(changelogItem, message) =>
+          logNotNewerNorDifferent(message, changelogItem.timestamp)
         case _ => IO.pure(Some(FederationMemberChangelogItem(message.ipfsCid, message.timestamp)))
       }
   }
 
-  private def getSharedFolderChangeLogItem(information: FederationMemberInformation): IO[Option[Instant]] = {
-    changelogService.getNewest(information.id).map(_.map(_.timestamp))
+  private def getSharedFolderChangeLogItem(
+      information: FederationMemberInformation
+  ): IO[Option[FederationMemberChangelogItem]] = {
+    changelogService.getNewest(information.id)
   }
 
-  private def isNewerMessage(timestamp: Instant, message: FederationMemberSharingFolderUpdateMessage): Boolean = {
-    message.timestamp.isAfter(timestamp)
+  private def isMessageNewerAndDifferent(
+      changelogItem: FederationMemberChangelogItem,
+      message: FederationMemberSharingFolderUpdateMessage
+  ): Boolean = {
+    message.timestamp.isAfter(changelogItem.timestamp) &&
+    !message.ipfsCid.equals(changelogItem.ipfsCid)
   }
 
   private def logResult(cmd: SharingFolderUpdateCommand): IO[Unit] = {
@@ -69,12 +76,13 @@ class SharingFolderUpdateCommandHandlerImpl(
     logger.info(s"Federation member changelog added. nickname=$nickname ipfsCid=${cmd.message.ipfsCid}")
   }
 
-  private def logOutOfOrderCase(
+  private def logNotNewerNorDifferent(
       message: FederationMemberSharingFolderUpdateMessage,
       timestamp: Instant
   ): IO[Option[FederationMemberChangelogItem]] = {
     logger.info(
-      s"Out of order message. Command request not processed. ipfsCid=${message.ipfsCid}, " +
+      s"Received message is not newer nor different, request dropped. " +
+        s"ipfsCid=${message.ipfsCid}, " +
         s"latestTimestamp=$timestamp vs incomingTimestamp=${message.timestamp}"
     ) >>
       IO.pure(None)