I consider "else after a return" to be bad style. Case in point: it obscures the fact that this function will bever return NULL because the "return NULL;" catch-all at the bottom is dead code. Why isn't the compiler catching that!? grr. The dead code issue becomes obvious -- hopefully even to the compiler -- when the else block gets popped out to top level.