diff --git a/src/test/test_prob_distr.c b/src/test/test_prob_distr.c
index 114057feca989c3579b42d9492840190e56f08b8..42cc6d70f636f24f74b644c04a010b583ce4a3cb 100644
--- a/src/test/test_prob_distr.c
+++ b/src/test/test_prob_distr.c
@@ -1137,7 +1137,11 @@ teardown_deterministic_rand(void)
 static void
 dump_seed(void)
 {
-  printf("\nSeed: %s\n",
+  printf("\n"
+         "NOTE: This is a stochastic test, and we expect it to fail from\n"
+         "time to time, with some low probability. If you see it fail more\n"
+         "than one trial in 100, though, please tell us.\n\n"
+         "Seed: %s\n",
          hex_str((const char*)rng_seed, sizeof(rng_seed)));
 }
 
@@ -1190,7 +1194,7 @@ test_stochastic_uniform(void *arg)
     .a = -4e-324,
     .b = 4e-310,
   };
-  bool ok = true;
+  bool ok = true, tests_failed = true;
 
   init_deterministic_rand();
   MOCK(crypto_rand, crypto_rand_deterministic);
@@ -1204,8 +1208,14 @@ test_stochastic_uniform(void *arg)
 
   tt_assert(ok);
 
+  tests_failed = false;
+
  done:
-    ;
+  if (tests_failed) {
+    dump_seed();
+  }
+  teardown_deterministic_rand();
+  UNMOCK(crypto_rand);
 }
 
 static bool