I have to say that the error is not only about --without-threads argument.Here is my test: i use mingw gcc version 4.6.2, i installed mingw's pthread, gmp, libunistring, i build libffi and gc myself. when i build gc-7.2alpha6 , i found that gc do not support pthread in mingw. so with the guile i can only use --without-threads argument. i made a directory named "build" in the top directory, then i cd into it. i use "../configure --without-threads" to config. after configure the guile,i run make. then it stops here: CC libguile_2.0_la-symbols.lo CC libguile_2.0_la-threads.lo ../../libguile/threads.c: In function 'to_timespec': ../../libguile/threads.c:267:15: error: dereferencing pointer to incomplete type ../../libguile/threads.c:268:15: error: dereferencing pointer to incomplete type ../../libguile/threads.c:275:15: error: dereferencing pointer to incomplete type ../../libguile/threads.c:276:15: error: dereferencing pointer to incomplete type ../../libguile/threads.c: In function 'scm_cancel_thread': ../../libguile/threads.c:1165:7: warning: statement with no effect [-Wunused-value] ../../libguile/threads.c: In function 'scm_join_thread_timed': ../../libguile/threads.c:1229:18: error: storage size of 'ctimeout' isn't known ../../libguile/threads.c:1229:18: warning: unused variable 'ctimeout' [-Wunused-variable] ../../libguile/threads.c: In function 'fat_mutex_lock': ../../libguile/threads.c:1453:41: error: dereferencing pointer to incomplete type ../../libguile/threads.c:1454:36: error: dereferencing pointer to incomplete type ../../libguile/threads.c:1455:43: error: dereferencing pointer to incomplete type ../../libguile/threads.c: In function 'scm_lock_mutex_timed': ../../libguile/threads.c:1487:18: error: storage size of 'cwaittime' isn't known ../../libguile/threads.c:1487:18: warning: unused variable 'cwaittime' [-Wunused-variable] ../../libguile/threads.c: In function 'scm_try_mutex': ../../libguile/threads.c:1536:18: error: storage size of 'cwaittime' isn't known ../../libguile/threads.c:1536:18: warning: unused variable 'cwaittime' [-Wunused-variable] ../../libguile/threads.c: In function 'scm_unlock_mutex_timed': ../../libguile/threads.c:1679:18: error: storage size of 'cwaittime' isn't known ../../libguile/threads.c:1679:18: warning: unused variable 'cwaittime' [-Wunused-variable] ../../libguile/threads.c: In function 'scm_timed_wait_condition_variable': ../../libguile/threads.c:1783:18: error: storage size of 'waittime' isn't known ../../libguile/threads.c:1783:18: warning: unused variable 'waittime' [-Wunused-variable] make[3]: *** [libguile_2.0_la-threads.lo] Error 1 make[3]: Leaving directory `/e/temp/files/guile/guile-2.0.5/build/libguile' make[2]: *** [all] Error 2 make[2]: Leaving directory `/e/temp/files/guile/guile-2.0.5/build/libguile' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/e/temp/files/guile/guile-2.0.5/build' make: *** [all] Error 2 The strange thing is although 'ctimout' is defined by scm_t_timespec ,and scm_t_timespec also be defined by "typedef struct timespec scm_t_timespec;", but the compiler still don't recognize it. So each "*time" isn't known ,is it?