Index: gc.c =================================================================== --- gc.c (revision 22907) +++ gc.c (working copy) @@ -1127,7 +1127,7 @@ int ret; rb_thread_t *th = GET_THREAD(); SET_STACK_END; - ret = STACK_LENGTH > STACK_LEVEL_MAX - GC_WATER_MARK; + ret = STACK_LENGTH > (long)(STACK_LEVEL_MAX - GC_WATER_MARK); #ifdef __ia64 if (!ret) { ret = (VALUE*)rb_ia64_bsp() - th->machine_register_stack_start >