Index: /branches/working-0711/ccl/level-1/l1-init.lisp
===================================================================
--- /branches/working-0711/ccl/level-1/l1-init.lisp	(revision 13408)
+++ /branches/working-0711/ccl/level-1/l1-init.lisp	(revision 13409)
@@ -140,5 +140,6 @@
   in a given lambda list. This is actually the limit on required and &OPTIONAL
   parameters. With &KEY and &AUX you can get more.")
-(defconstant call-arguments-limit (floor #x8000 target::node-size)
+(defconstant call-arguments-limit #+ppc-target (floor #x8000 target::node-size)
+	                          #-ppc-target #x10000
   "The exclusive upper bound on the number of arguments which may be passed
   to a function, including &REST args."
Index: /branches/working-0711/ccl/lisp-kernel/x86-constants32.s
===================================================================
--- /branches/working-0711/ccl/lisp-kernel/x86-constants32.s	(revision 13408)
+++ /branches/working-0711/ccl/lisp-kernel/x86-constants32.s	(revision 13409)
@@ -613,5 +613,5 @@
 target_most_positive_fixnum = 536870911
 target_most_negative_fixnum = -536870912
-call_arguments_limit = 8192
+call_arguments_limit = 0x10000
 
 lisp_globals_limit = (0x13000+(LOWMEM_BIAS))
Index: /branches/working-0711/ccl/lisp-kernel/x86-constants64.s
===================================================================
--- /branches/working-0711/ccl/lisp-kernel/x86-constants64.s	(revision 13408)
+++ /branches/working-0711/ccl/lisp-kernel/x86-constants64.s	(revision 13409)
@@ -1037,12 +1037,9 @@
 target_most_positive_fixnum = 1152921504606846975
 target_most_negative_fixnum = -1152921504606846976
-
+call_arguments_limit = 0x10000
 
 lisp_globals_limit = 0x13000
-        
+
 INTERRUPT_LEVEL_BINDING_INDEX = fixnumone
 
 c_stack_16_byte_aligned = 1
-        	
-		        
-                
Index: /branches/working-0711/ccl/lisp-kernel/x86-spentry32.s
===================================================================
--- /branches/working-0711/ccl/lisp-kernel/x86-spentry32.s	(revision 13408)
+++ /branches/working-0711/ccl/lisp-kernel/x86-spentry32.s	(revision 13409)
@@ -2524,5 +2524,5 @@
 	__(add $node_size,%nargs)
 	__(cmpl $call_arguments_limit<<fixnumshift,%nargs)
-	__(jge 8f)
+	__(jae 8f)
 	__(push %arg_y)
 	__(cmpl $nil_value,%arg_z)
Index: /branches/working-0711/ccl/lisp-kernel/x86-spentry64.s
===================================================================
--- /branches/working-0711/ccl/lisp-kernel/x86-spentry64.s	(revision 13408)
+++ /branches/working-0711/ccl/lisp-kernel/x86-spentry64.s	(revision 13409)
@@ -2486,12 +2486,13 @@
 	__(cmpb $fulltag_cons,%imm1_b)
 	__(jne 9f)
-	__(addw $node_size,%imm0_w)
         __(_car(%arg_z,%arg_x))
 	__(_cdr(%arg_z,%arg_z))
-        __(js 8f)
+	__(addl $node_size,%imm0_l)
+	__(cmpl $call_arguments_limit<<fixnumshift, %imm0_l)
+        __(jae 8f)
 	__(compare_reg_to_nil(%arg_z))
 	__(push %arg_x)
 	__(jne 1b)
-2:	__(addw %imm0_w,%nargs_w)
+2:	__(addl %imm0_l,%nargs)
 	__(jne 4f)
 3:	__(addq $2*node_size,%rsp)
