Cutting Holes with Boolean Modifier Makes Subdivision Surface Impossible I am trying to cut numerous holes into a cylinder to create the barrel of gun. I used the Boolean modifier to cut the holes but now when I try to apply a subdivision surface to the cylinder I get horrifying results. 

Would applying the subdivision surface first give better results or should I abandon the Boolean modifier entirely and opt for the knife project tool?

EDIT: Thanks to cegaton I am now able to cut the holes and use a subdivision surface. I still end up with an issue when smooth shading is applied though.
Invert the order of the modifiers, do the subsurf before the boolean.

Instead of this:


Do this: