diff --git a/Sources/XXClient/CMix/CMix.swift b/Sources/XXClient/CMix/CMix.swift
index fe9e27b70c11aa952d9ca026155d01cc0ac988aa..ef17f9ec296f30fbc9ab8bdf9443ba200dbff4c9 100644
--- a/Sources/XXClient/CMix/CMix.swift
+++ b/Sources/XXClient/CMix/CMix.swift
@@ -4,7 +4,6 @@ public struct CMix {
   public var getId: CMixGetId
   public var getReceptionRegistrationValidationSignature: CMixGetReceptionRegistrationValidationSignature
   public var makeReceptionIdentity: CMixMakeReceptionIdentity
-  public var makeLegacyReceptionIdentity: CMixMakeLegacyReceptionIdentity
   public var isHealthy: CMixIsHealthy
   public var getNodeRegistrationStatus: CMixGetNodeRegistrationStatus
   public var hasRunningProcesses: CMixHasRunningProcesses
@@ -24,7 +23,6 @@ extension CMix {
       getId: .live(bindingsCMix),
       getReceptionRegistrationValidationSignature: .live(bindingsCMix),
       makeReceptionIdentity: .live(bindingsCMix),
-      makeLegacyReceptionIdentity: .live(bindingsCMix),
       isHealthy: .live(bindingsCMix),
       getNodeRegistrationStatus: .live(bindingsCMix),
       hasRunningProcesses: .live(bindingsCMix),
@@ -45,7 +43,6 @@ extension CMix {
     getId: .unimplemented,
     getReceptionRegistrationValidationSignature: .unimplemented,
     makeReceptionIdentity: .unimplemented,
-    makeLegacyReceptionIdentity: .unimplemented,
     isHealthy: .unimplemented,
     getNodeRegistrationStatus: .unimplemented,
     hasRunningProcesses: .unimplemented,
diff --git a/Sources/XXClient/CMix/Functors/CMixMakeLegacyReceptionIdentity.swift b/Sources/XXClient/CMix/Functors/CMixMakeLegacyReceptionIdentity.swift
deleted file mode 100644
index ee0c9ad6ce866e5605b531a6c38d748f4d575d9a..0000000000000000000000000000000000000000
--- a/Sources/XXClient/CMix/Functors/CMixMakeLegacyReceptionIdentity.swift
+++ /dev/null
@@ -1,25 +0,0 @@
-import Bindings
-import XCTestDynamicOverlay
-
-public struct CMixMakeLegacyReceptionIdentity {
-  public var run: () throws -> ReceptionIdentity
-
-  public func callAsFunction() throws -> ReceptionIdentity {
-    try run()
-  }
-}
-
-extension CMixMakeLegacyReceptionIdentity {
-  public static func live(_ bindingsCMix: BindingsCmix) -> CMixMakeLegacyReceptionIdentity {
-    CMixMakeLegacyReceptionIdentity {
-      let data = try bindingsCMix.makeLegacyReceptionIdentity()
-      return try ReceptionIdentity.decode(data)
-    }
-  }
-}
-
-extension CMixMakeLegacyReceptionIdentity {
-  public static let unimplemented = CMixMakeLegacyReceptionIdentity(
-    run: XCTUnimplemented("\(Self.self)")
-  )
-}
diff --git a/Sources/XXClient/CMix/Functors/CMixMakeReceptionIdentity.swift b/Sources/XXClient/CMix/Functors/CMixMakeReceptionIdentity.swift
index 973812cf8cc77ea2ecadfd2cc18ff2c4a19ce6c4..3ce33e4d376d1e0754817006c5503b7b074f5b44 100644
--- a/Sources/XXClient/CMix/Functors/CMixMakeReceptionIdentity.swift
+++ b/Sources/XXClient/CMix/Functors/CMixMakeReceptionIdentity.swift
@@ -2,17 +2,24 @@ import Bindings
 import XCTestDynamicOverlay
 
 public struct CMixMakeReceptionIdentity {
-  public var run: () throws -> ReceptionIdentity
+  public var run: (Bool) throws -> ReceptionIdentity
 
-  public func callAsFunction() throws -> ReceptionIdentity {
-    try run()
+  public func callAsFunction(
+    legacy: Bool = false
+  ) throws -> ReceptionIdentity {
+    try run(legacy)
   }
 }
 
 extension CMixMakeReceptionIdentity {
   public static func live(_ bindingsCMix: BindingsCmix) -> CMixMakeReceptionIdentity {
-    CMixMakeReceptionIdentity {
-      let data = try bindingsCMix.makeReceptionIdentity()
+    CMixMakeReceptionIdentity { legacy in
+      let data: Data
+      if legacy {
+        data = try bindingsCMix.makeLegacyReceptionIdentity()
+      } else {
+        data = try bindingsCMix.makeReceptionIdentity()
+      }
       return try ReceptionIdentity.decode(data)
     }
   }
diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
index d871f5341027e36456e622959b30e36ee26da163..efca553a512e4ab3745eb292fd54e59232fe03f4 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
+++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
@@ -22,7 +22,7 @@ extension MessengerConnect {
       env.e2e.set(try env.login(
         cMixId: cMix.getId(),
         authCallbacks: env.authCallbacks.registered(),
-        identity: try cMix.makeLegacyReceptionIdentity(),
+        identity: try cMix.makeReceptionIdentity(legacy: true),
         e2eParamsJSON: env.getE2EParams()
       ))
     }
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
index 7654bc26adca7ccf82be5d8836b954af40e38a73..1f69797f10465a6c4d4ddd027d368cdc7dc69c7a 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
@@ -12,6 +12,7 @@ final class MessengerConnectTests: XCTestCase {
       var e2eParamsJSON: Data
     }
 
+    var didMakeReceptionIdentity: [Bool] = []
     var didLogIn: [DidLogIn] = []
     var didLogInWithAuthCallbacks: [AuthCallbacks?] = []
     var didSetE2E: [E2E?] = []
@@ -25,7 +26,10 @@ final class MessengerConnectTests: XCTestCase {
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { cMixId }
-      cMix.makeLegacyReceptionIdentity.run = { receptionId }
+      cMix.makeReceptionIdentity.run = { legacy in
+        didMakeReceptionIdentity.append(legacy)
+        return receptionId
+      }
       return cMix
     }
     env.e2e.set = { didSetE2E.append($0) }
@@ -49,11 +53,12 @@ final class MessengerConnectTests: XCTestCase {
 
     try connect()
 
+    XCTAssertNoDifference(didMakeReceptionIdentity, [true])
     XCTAssertNoDifference(didLogIn, [
       DidLogIn(
         ephemeral: false,
         cMixId: 1234,
-        identity: .stub,
+        identity: receptionId,
         e2eParamsJSON: e2eParams
       )
     ])
@@ -89,7 +94,7 @@ final class MessengerConnectTests: XCTestCase {
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { 1234 }
-      cMix.makeLegacyReceptionIdentity.run = { throw error }
+      cMix.makeReceptionIdentity.run = { _ in throw error }
       return cMix
     }
     env.authCallbacks.registered = { .unimplemented }
@@ -108,7 +113,7 @@ final class MessengerConnectTests: XCTestCase {
     env.cMix.get = {
       var cMix: CMix = .unimplemented
       cMix.getId.run = { 1234 }
-      cMix.makeLegacyReceptionIdentity.run = { .stub }
+      cMix.makeReceptionIdentity.run = { _ in .stub }
       return cMix
     }
     env.authCallbacks.registered = { .unimplemented }