diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift
index b87acc2f13caf51d2998d3a864a6484f897dc528..3494df5038485e75f297f6e034859754c6b290ad 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift
+++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift
@@ -1,3 +1,4 @@
+import Foundation
 import XXClient
 import XCTestDynamicOverlay
 
@@ -9,21 +10,21 @@ public struct MessengerWaitForNodes {
     case timeout
   }
 
-  public var run: (Double, Int, Int, @escaping Progress) throws -> Void
+  public var run: (Double, TimeInterval, Int, @escaping Progress) throws -> Void
 
   public func callAsFunction(
     targetRatio: Double = 0.8,
-    sleepMS: Int = 1_000,
+    sleepInterval: TimeInterval = 1,
     retries: Int = 10,
     onProgress: @escaping Progress = { _ in }
   ) throws {
-    try run(targetRatio, sleepMS, retries, onProgress)
+    try run(targetRatio, sleepInterval, retries, onProgress)
   }
 }
 
 extension MessengerWaitForNodes {
   public static func live(_ env: MessengerEnvironment) -> MessengerWaitForNodes {
-    MessengerWaitForNodes { targetRatio, sleepMS, retries, onProgress in
+    MessengerWaitForNodes { targetRatio, sleepInterval, retries, onProgress in
       guard let cMix = env.cMix() else {
         throw Error.notLoaded
       }
@@ -33,7 +34,7 @@ extension MessengerWaitForNodes {
       onProgress(report)
 
       while report.ratio < targetRatio && retries > 0 {
-        env.sleep(sleepMS)
+        env.sleep(sleepInterval)
         report = try cMix.getNodeRegistrationStatus()
         retries -= 1
         onProgress(report)
diff --git a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
index 0918142a1f92dd6bbc5392bb562113464f349b20..6ac78b1e8dc416db224b2e6dd3be699c68b31fb6 100644
--- a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
+++ b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift
@@ -17,7 +17,7 @@ public struct MessengerEnvironment {
   public var newCMix: NewCMix
   public var newOrLoadUd: NewOrLoadUd
   public var passwordStorage: PasswordStorage
-  public var sleep: (Int) -> Void
+  public var sleep: (TimeInterval) -> Void
   public var storageDir: String
   public var ud: Stored<UserDiscovery?>
   public var udAddress: String?
@@ -48,7 +48,7 @@ extension MessengerEnvironment {
       newCMix: .live,
       newOrLoadUd: .live,
       passwordStorage: .keychain,
-      sleep: { Foundation.sleep(UInt32($0)) },
+      sleep: { Thread.sleep(forTimeInterval: $0) },
       storageDir: MessengerEnvironment.defaultStorageDir,
       ud: .inMemory(),
       udAddress: nil,
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift
index bc23afb53c604fd0b737bba5db544edfebdffe68..4d009502ef39cb10712dff2c7abd77c2787c5087 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift
@@ -32,7 +32,7 @@ final class MessengerWaitForNodesTests: XCTestCase {
 
     try waitForNodes(
       targetRatio: 0.7,
-      sleepMS: 123,
+      sleepInterval: 123,
       retries: 3,
       onProgress: { didProgress.append($0) }
     )
@@ -43,7 +43,7 @@ final class MessengerWaitForNodesTests: XCTestCase {
   }
 
   func testWaitForTargetRatio() throws {
-    var didSleep: [Int] = []
+    var didSleep: [TimeInterval] = []
     var didProgress: [NodeRegistrationReport] = []
 
     var reports: [NodeRegistrationReport] = [
@@ -63,7 +63,7 @@ final class MessengerWaitForNodesTests: XCTestCase {
 
     try waitForNodes(
       targetRatio: 0.7,
-      sleepMS: 123,
+      sleepInterval: 123,
       retries: 3,
       onProgress: { didProgress.append($0) }
     )
@@ -77,7 +77,7 @@ final class MessengerWaitForNodesTests: XCTestCase {
   }
 
   func testWaitTimeout() {
-    var didSleep: [Int] = []
+    var didSleep: [TimeInterval] = []
     var didProgress: [NodeRegistrationReport] = []
 
     var reports: [NodeRegistrationReport] = [
@@ -98,7 +98,7 @@ final class MessengerWaitForNodesTests: XCTestCase {
 
     XCTAssertThrowsError(try waitForNodes(
       targetRatio: 0.7,
-      sleepMS: 123,
+      sleepInterval: 123,
       retries: 3,
       onProgress: { didProgress.append($0) }
     )) { error in