diff --git a/tests/mutex_unlock_and_sleep/main.c b/tests/mutex_unlock_and_sleep/main.c
index 43f9404cbdf5cdefe76a2159aaf63c6e4d5e12b9..3ef949f78056b2e50efe0e866880646e138bbe5d 100644
--- a/tests/mutex_unlock_and_sleep/main.c
+++ b/tests/mutex_unlock_and_sleep/main.c
@@ -27,6 +27,12 @@ static volatile int indicator;
 static kernel_pid_t main_pid;
 static char stack[THREAD_STACKSIZE_DEFAULT];
 
+#ifdef BOARD_NATIVE
+static const unsigned KITERATIONS = 100;
+#else
+static const unsigned KITERATIONS = 10;
+#endif
+
 static void *second_thread(void *arg)
 {
     (void) arg;
@@ -42,6 +48,7 @@ static void *second_thread(void *arg)
 int main(void)
 {
     uint32_t count = 0;
+    uint32_t kcount = 0;
 
     indicator = 0;
     main_pid = thread_getpid();
@@ -64,8 +71,10 @@ int main(void)
             printf("[ERROR] threads did not sleep properly (%d).\n", indicator);
             return 1;
         }
-        if ((count % 100000) == 0) {
-            printf("[ALIVE] alternated %"PRIu32"k times.\n", (count / 1000));
+        if (count == (KITERATIONS * 1000)) {
+            count = 0;
+            kcount += KITERATIONS;
+            printf("[ALIVE] alternated %"PRIu32"k times.\n", kcount);
         }
         mutex_unlock_and_sleep(&mutex);
     }
diff --git a/tests/mutex_unlock_and_sleep/tests/01-run.py b/tests/mutex_unlock_and_sleep/tests/01-run.py
index 28d12e30afea58a30def19c50eb97bbe84dd29a7..955095373a935eed7c59caa674b20f12c5732a0c 100755
--- a/tests/mutex_unlock_and_sleep/tests/01-run.py
+++ b/tests/mutex_unlock_and_sleep/tests/01-run.py
@@ -11,7 +11,7 @@ import sys
 
 
 def testfunc(child):
-    for i in range(20):
+    for i in range(10):
         child.expect(r"\[ALIVE\] alternated \d+k times.")