 +              lo = hi - stack_limit;
 +            }
 +          #else
-+            if (lo < hi || lo >= hi + stack_limit) { // sp outside stack
-+              lo = hi + stack_limit;
-+            }
++          #error "STACK_GROWS_UP not supported in boost_coroutine2 (as of june 2021), so we don't support it in Nix."
 +          #endif
          }
          GC_push_all_stack_sections(lo, hi, traced_stack_sect);

diff --git a/pthread_stop_world.c b/pthread_stop_world.c
index 1cee6a0b..8977b0dd 100644
--- a/pthread_stop_world.c
+++ b/pthread_stop_world.c
@@ -674,6 +674,8 @@ GC_INNER void GC_push_all_stacks(void)

 
     if (!EXPECT(GC_thr_initialized, TRUE))
       GC_thr_init();
@@ -723,6 +725,28 @@ GC_INNER void GC_push_all_stacks(void)
           hi = p->altstack + p->altstack_size;
           /* FIXME: Need to scan the normal stack too, but how ? */
           /* FIXME: Assume stack grows down */
