diff --git a/network/rounds/retrieve_test.go b/network/rounds/retrieve_test.go
index 59ebacd4f23a50d05a19c48b2cc9d8f6b5d415ca..856fa05fa3e9b911f6180b0ed368031993c907a1 100644
--- a/network/rounds/retrieve_test.go
+++ b/network/rounds/retrieve_test.go
@@ -294,15 +294,17 @@ func TestManager_ProcessMessageRetrieval_Quit(t *testing.T) {
 	messageBundleChan := make(chan message.Bundle)
 	testManager.messageBundles = messageBundleChan
 
+	// Initialize the message retrieval
+	go testManager.processMessageRetrieval(mockComms, stop)
+
 	// Close the process early, before any logic below can be completed
 	if err := stop.Close(); err != nil {
 		t.Errorf("Failed to signal close to process: %+v", err)
 	}
 
-	time.Sleep(250 * time.Millisecond)
-
-	// Initialize the message retrieval
-	go testManager.processMessageRetrieval(mockComms, stop)
+	if err := stoppable.WaitForStopped(stop, 300*time.Millisecond); err != nil {
+		t.Fatalf("Failed to stop stoppable: %+v", err)
+	}
 
 	// Construct expected values for checking
 	expectedEphID := ephemeral.Id{1, 2, 3, 4, 5, 6, 7, 8}