How to avoid subsurf distortions on cylindrical objects? I made a cylindrical object which transitions to a squarish block. However there is some distortion at the transition:



If I add a loopcut to get a nicer surface there, it gives the cylinder a not-very-round edge:



What are some topological tricks for getting smooth subsurf without interfering with other parts of the model?
Although there are several ways to do this, I would recommend selecting the outlining edges: 



And then bevel them with Ctrl+B: