141a142,145
> # ifdef _M_IX86
> #  define HACKED_APPLY
> # endif
> 
5491a5496,5499
> #ifdef HACKED_APPLY
>   C_word *buf = C_temporary_stack_limit;
>   void *proc;
> #endif
5503a5512,5514
> #ifdef HACKED_APPLY
>     *(buf++) = x;
> #else
5504a5516
> #endif
5515a5528,5533
> 
> #ifdef HACKED_APPLY
>     if(buf >= C_temporary_stack_bottom) barf(C_TOO_MANY_PARAMETERS_ERROR, "apply");
> 
>     *(buf++) = x;
> #else
5516a5535
> #endif
5548a5568,5580
> 
> #elif defined(HACKED_APPLY)
>   buf = alloca((n + 3) * sizeof(C_word));
>   buf[ 0 ] = n + 2;
>   buf[ 1 ] = fn;
>   buf[ 2 ] = k;
>   memcpy(&buf[ 3 ], C_temporary_stack_limit, n * sizeof(C_word));
>   proc = (void *)C_u_i_car(fn);
>   __asm { 
>     mov eax, proc
>     mov esp, buf
>     call eax
>   }
5855c5887,5889
<     for(va_start(v, arg0); c-- > 2; C_save(va_arg(v, C_word)));
---
>     va_start(v, arg0);
> 
>     for(; c-- > 2; C_save(va_arg(v, C_word)));
7336c7370
<   C_word ab[ 2 ], *a = ab,
---
>   C_word ab[ 3 ], *a = ab,

