diff --git a/tests/suites/test_suite_ctr_drbg.data b/tests/suites/test_suite_ctr_drbg.data
index 70206e7..827d74a 100644
--- a/tests/suites/test_suite_ctr_drbg.data
+++ b/tests/suites/test_suite_ctr_drbg.data
@@ -1097,10 +1097,10 @@
 ctr_drbg_special_behaviours:
 
 CTR_DRBG Threads: no reseed
-ctr_drbg_threads:"1fafa98bc83d95e10f2d5ed339a553e1":10000
+ctr_drbg_threads:"1fafa98bc83d95e10f2d5ed339a553e1":0
 
 CTR_DRBG Threads: reseed
-ctr_drbg_threads:"0d2dda60286dc738ddcc2dd3520bb988":25
+ctr_drbg_threads:"B10A961F2EA39927B4C48AEDDD299026":1
 
 CTR_DRBG self test
 ctr_drbg_selftest:
diff --git a/tests/suites/test_suite_ctr_drbg.function b/tests/suites/test_suite_ctr_drbg.function
index 7123d14..72cbf7b 100644
--- a/tests/suites/test_suite_ctr_drbg.function
+++ b/tests/suites/test_suite_ctr_drbg.function
@@ -343,29 +343,37 @@
 /* END_CASE */
 
 /* BEGIN_CASE depends_on:MBEDTLS_THREADING_PTHREAD */
-void ctr_drbg_threads(data_t *expected_result, int reseed_interval)
+void ctr_drbg_threads(data_t *expected_result, int reseed)
 {
 #define THREAD_CNT 5
     pthread_t threads[THREAD_CNT];
 
     unsigned char out[16];
+    unsigned char *entropy = NULL;
+
+    const size_t n_random_calls = THREAD_CNT * thread_random_reps + 1;
+
     memset(out, 0, sizeof(out));
 
-    unsigned char entropy[1024];
-    memset(entropy, 0, sizeof(entropy));
-
-    test_offset_idx = 0;
-    test_max_idx = sizeof(entropy);
-
     mbedtls_ctr_drbg_context ctx;
     mbedtls_ctr_drbg_init(&ctx);
 
-    mbedtls_ctr_drbg_set_reseed_interval(&ctx, reseed_interval);
+    test_offset_idx = 0;
 
-    /* There are too many calls in this test to conveniently provide enough
-     * entropy for this to be on. Test cases can trigger reseeding by setting
-     * \p reseed_interval appropriately. */
-    mbedtls_ctr_drbg_set_prediction_resistance(&ctx, MBEDTLS_CTR_DRBG_PR_OFF);
+    if (reseed == 0) {
+        mbedtls_ctr_drbg_set_prediction_resistance(&ctx, MBEDTLS_CTR_DRBG_PR_OFF);
+        mbedtls_ctr_drbg_set_reseed_interval(&ctx, n_random_calls + 1);
+
+        TEST_CALLOC(entropy, MBEDTLS_CTR_DRBG_ENTROPY_LEN);
+        test_max_idx = MBEDTLS_CTR_DRBG_ENTROPY_LEN;
+    } else {
+        const size_t entropy_size = (n_random_calls + 1) * MBEDTLS_CTR_DRBG_ENTROPY_LEN;
+
+        mbedtls_ctr_drbg_set_prediction_resistance(&ctx, MBEDTLS_CTR_DRBG_PR_ON);
+
+        TEST_CALLOC(entropy, entropy_size);
+        test_max_idx = entropy_size;
+    }
 
     TEST_EQUAL(
         mbedtls_ctr_drbg_seed(&ctx, mbedtls_test_entropy_func, entropy, NULL, 0),
@@ -389,6 +397,7 @@
 
 exit:
     mbedtls_ctr_drbg_free(&ctx);
+    mbedtls_free(entropy);
 }
 #undef THREAD_CNT
 /* END_CASE */
