diff --git a/src/test/test_hs_service.c b/src/test/test_hs_service.c
index a2594ed6afc6bf9313630fa1f60a9026c48bfa28..efe4166bf9a81e025feef66a7dcd0eeaccf193f0 100644
--- a/src/test/test_hs_service.c
+++ b/src/test/test_hs_service.c
@@ -1296,6 +1296,11 @@ test_service_event(void *arg)
     service_intro_point_add(service->desc_current->intro_points.map, ip);
     ip->circuit_established = 1;  /* We'll test that, it MUST be 0 after. */
     run_housekeeping_event(now);
+    tt_int_op(digest256map_size(service->desc_current->intro_points.map),
+              OP_EQ, 1);
+    /* No removal if we have an established circuit after retries. */
+    ip->circuit_retries = MAX_INTRO_POINT_CIRCUIT_RETRIES + 1;
+    run_housekeeping_event(now);
     tt_int_op(digest256map_size(service->desc_current->intro_points.map),
               OP_EQ, 1);
     /* Remove the IP object at once for the next test. */