Problem with a clipped line containing nan's (v1.1.1rc on Ubuntu 12.04)

I've come across a problem (possibly a bug in cleanup_path) after
plotting a line containing nan's and then scaling the axes so that the
line is clipped by the axes.

Instead of a gap at the position of the nan value, two extra segments
appear - back to the start and then onto the next-plus-one valid
point. It's quite dependent on exactly how the line is clipped, and
by interactively zooming the plot the issue can be made to disappear
and reappear.

e.g.

···

##############################
import matplotlib
matplotlib.use('pdf') #pdf or ps or agg (incl. inside gui) reproduce
the issue, cairo works as expected
import matplotlib.pyplot as plt
import numpy as np

f = plt.figure()
ax = f.add_subplot(111)
ax.plot([30.,50.,900.,449.0,np.nan,50,60,100])
ax.set_ylim([0,400]) #default plot limits work fine
f.savefig('test')
##############################

This is with the Ubuntu 12.04 version of matplotlib (on x86_64);
v1.1.1rc. Version 1.0.1 (also via Ubuntu) was ok.

For the pdf backend, at least, the problem seems to appear in the call to
cleanup_path at line 247 of path.py (in iter_segments):

vertices, codes = cleanup_path(self, transform, remove_nans, clip,
                                       snap, stroke_width, simplify, curves)

Before the call, the path looks ok, but after the call to
cleanup_path, vertices is a bit of a mess (corresponding 'code' in
brackets):
array([[ 72. , 69.12 ], (moveto)
       [ 135.77142857, 86.4 ], (lineto)
       [ 165.86834734, 433. ], (lineto)
       [ 263.00922817, 433. ], (moveto)
       [ 263.31428571, 431.136 ], (lineto)
       [ 72. , 69.12 ], (lineto) <--- (should be a gap?)
       [ 454.62857143, 95.04 ], (lineto)
       [ 518.4 , 129.6 ], (lineto)
       [ 518.4 , 129.6 ]]) (stop)

I can work around the problem by setting the backend to 'cairo' or by adding
    clip = None
near the top of iter_segments (line 235 of path.py)

HTH.