I think the change in 1.6 to array-map! to check for no source args is too strict, it rejects one source arg, eg. (array-map! #(1 2) noop #(3 4)) => :1:7: In procedure array-map! in expression (array-map! #(1 2) noop ...): :1:7: At least one source array is required. ABORT: (misc-error) I'm thinking of * ramap.c (scm_array_map_x): Correction to sources list check, only need at least one source, not two. And use SCM_WRONG_NUM_ARGS() for the error. Likewise in the head (which hasn't had this check at all yet).