circle not drawn correctly when axis is flipped

I'm trying to plot a circle AND flip an axis of the plot, but this leads to an inverted circle (diamond) being drawn. Is there any way to do this 'neatly' (besides, for example, manually editing the axis labels or using a many-sided polygon to fake a circle)? Note that the circle renders correctly with the PS backend.... Example code to reproduce the problem:

import pylab as p

x = p.rand(17)
y = p.rand(17)

p.scatter(x,y)
p.gca().add_patch(p.Circle((0.5,0.5),0.2,fill=False))
p.axis([0.,1.,1.,0.])
p.gca().set_aspect('equal')
p.show()

Thanks for any help!
Matt