-[ Tue, Aug 23, 2011 at 12:36:44PM +0100, Richard Shann ]---- > I have defined a function with one needed and one optional arg, using > > scm_c_define_gsubr (name, 2, 0, 0, callback);
You mean : scm_c_define_gsubr (name, 1, 1, 0, callback); don't you ?