Simple Stupid Funnel Algorithm

So I have a question about the Simple Stupid Funnel Algorithm (http://digestingduck.blogspot.co.uk/2010/03/simple-stupid-funnel-algorithm.html), is the only time you add a new point to the path when either the new left edge crosses the funnel’s right edge or when the new right edge crosses the funnel’s left edge? That seems to be what all the descriptions I can find say and what all the examples show but there would seem to be many cases where this does not work.

In the below:

  • Blue lines are the edges of the triangle mesh.
  • Green lines are the unoptimized path.
  • The red line is the left edge of the funnel.
  • The cyan line is the right edge of the funnel.
  • The yellow line is the current portal.
  • The magenta line is the current “optimized” path.

Now the first row works well. The second row is the exact same with the last triangle removed and produces an illegal path.

(Direct Link: http://i62.tinypic.com/2eq73t2.png)

Now as far as my understanding of the algorithm goes, my implementation is working other than that it produces an illegal result. So do I not understand the algorithm correctly, or have I missed something going wrong or is the algorithm itself just flawed?

Thanks in advance for any help.