What kind of special magic does glm have?

I'm working on a logistic regression solver (L-BFGS) in c and I've been
using glm to check my results.  I came across a data set that has a very
high condition number (the data matrix transpose the data matrix) that when
running my solver does not converge, but the same data set with glm was
converging ( I love R :) ).  I noticed that glm using IWLS to solve the MLE
problem I also noticed that the results from glm suggest that glm checks
for complete separation for variables. Besides this check for variable
separation is glm doing anything else besides a straight implementation to
IWLS that would allow it to converge for a near ill-posed data set? Is it
re-starting in some intelligent way?

My apologies if this is not the right place to post this message (wasn't
sure if I should post here or in r-dev).

Thanks,

-Chris

	[[alternative HTML version deleted]]

