For some odd reason, shadow calculation was skipped if diffuse was 0.0. This
however would cause errors where specularity would ignore shadows. After all,
just because the shaded diffuse of a point is fully black, doesn't mean
the specularity highlight doesn't include that point.
Ton: you might want to look at this, though it's just a one-liner.