diff --git a/test/replication/memcached.test b/test/replication/memcached.test
index 691e40a4eb7602b0ffc31ac32f606ce38fb3b5d2..a8909049e05a732da08e3678fe229ffc5f9f1b03 100644
--- a/test/replication/memcached.test
+++ b/test/replication/memcached.test
@@ -22,39 +22,21 @@ replica.deploy("replication/cfg/replica.cfg",
 replica_memcached = replica.memcached
 
 ###################################
-def wait_for_lsn(lsn, serv):
-    serv_admin = serv.admin
-    while True:
-        if get_lsn(serv) == lsn:
-            return lsn
-        time.sleep(0.01)
-
-def wait_for_next_lsn(lsn, serv):
-    serv_admin = serv.admin
-    while True:
-        if get_lsn(serv) != lsn:
-            return lsn
-        time.sleep(0.01)
-
 def get_lsn(serv):
     serv_admin = serv.admin
     resp = exec serv_admin silent "lua box.info.lsn"
     return yaml.load(resp)[0]
 
-def wait(next = False, serv_master = master, serv_replica = replica):
-    if next:
-        lsn = get_lsn(serv_replica)
-        return wait_for_next_lsn(lsn, serv_replica)
-    else:
-        lsn = get_lsn(serv_master)
-        return wait_for_lsn(lsn, serv_replica)
+def wait(serv_master = master, serv_replica = replica):
+    lsn = get_lsn(serv_master)
+    serv_replica.wait_lsn(lsn)
+    return lsn
 
 def get_memcached_len(serv):
     serv_admin = serv.admin
     resp = exec serv_admin silent "lua box.space[box.cfg.memcached_space]:len()"
     return yaml.load(resp)[0]
 
-
 def wait_for_empty_space(serv):
     serv_admin = serv.admin
     while True:
@@ -102,20 +84,21 @@ exec replica_memcached "get 10\r\n"
 
 print """# check that expiration is working properly on replica"""
 exec master_memcached silent "set 1 0 3 %d\r\n%s\r\n" % (len(sonet[0]), sonet[0])
-wait()
+lsn = wait()
 exec replica_memcached "get 1\r\n"
-wait(True)
+replica.wait_lsn(lsn + 1)
 exec replica_memcached "get 1\r\n"
 
 print """# check that expiration is working properly, when replica becomes master"""
 exec master_memcached silent "set 1 0 3 %d\r\n%s\r\n" % (len(sonet[0]), sonet[0])
+lsn = wait()
 replica.reconfigure("replication/cfg/replica_to_master.cfg")
 exec replica_memcached "get 1\r\n"
-wait(True)
+replica.wait_lsn(lsn + 1)
 exec replica_memcached "get 1\r\n"
 
 
-# resore default suite config
+# restore default suite config
 replica.stop()
 replica.cleanup(True)
 master.stop()