Index: /trunk/ccl/lisp-kernel/spentry.s
===================================================================
--- /trunk/ccl/lisp-kernel/spentry.s	(revision 267)
+++ /trunk/ccl/lisp-kernel/spentry.s	(revision 268)
@@ -3341,6 +3341,8 @@
 	__(_car(arg_x,arg_z))
 	__(_cdr(arg_z,arg_z))
+	__(cmpri(cr2,arg_x,nil_value))
 	__(cmpri(cr1,arg_z,nil_value))
-	__(trap_unless_fulltag_equal(arg_x,fulltag_cons,imm0))
+	__(beq cr2,2f)
+	__(trap_unless_lisptag_equal(arg_x,tag_list,imm0))
 	__(_car(temp0,arg_x))
 	__(cmpr(temp0,arg_y))
@@ -3350,4 +3352,5 @@
 2:	__(bne cr1,1b)
 	__(blr)
+
 
 
@@ -3400,4 +3403,5 @@
 	__(cmpri(cr1,arg_z,0))
 	__(extract_2_lisptags_(imm0,arg_y,arg_z))
+	__(cmpri(cr2,arg_z,-(29<<2)))	/* !! 2 =  fixnumshift */
 	__(bne- 9f)
 	__(bne cr1,0f)
@@ -3409,4 +3413,6 @@
 	__(bgt cr1,1f)
 	/* (ash n -count) => fixnum */
+	__(li arg_z,-1<<fixnumshift)
+	__(blelr cr2)
 	__(neg imm0,imm0)
 	__(sraw imm1,imm1,imm0)
