OK. This is gonna be hard to trace down. I am on a Mac running Sierra, 10.12.2. At work I am running 10.9 I believe, and I see the same behavior. If I compile with gcc 6.2 or gcc4.9, but no extra flags besides —prefix, I get the following failure: FAIL: numbers.test: string->number: valid complex number strings and trace this down to meta/guile -c '(display (eqv? (imag-part (string->number "#i1@-0")) -0.0))' => #f If I add “-g” to CFLAGS & LDFLAGS, or just compile with CFLAGS=-O0 I get FAIL: mutex-ownership: mutex with owner not retained (bug #27450) Note the following modification from the above guardian test: (define gg #f) (let ((g (make-guardian))) (g (let ((m (make-mutex))) (lock-mutex m) (if (mutex? m) #t (display "0: not mutex\n")) m)) (set! gg g) (simple-format #t "1: g=~S\n" g) ;; Avoid false references to M on the stack. (clear-stale-stack-references) (gc) (gc) (simple-format #t "2: g=~S\n" g) (let ((m (g))) (simple-format #t "3: g=~S\n" g) (and (mutex? m) (eq? (mutex-owner m) (current-thread))))) (gc)(gc) (simple-format #t "9:gg=~S\n" gg) The above generates 1: g=# 2: g=# 3: g=# 9:gg=# I believe both 2 and 3 would ordinarily indicate the mutex unreachable. Any ideas on how to chase this down? Matt