From d08e6ab27973d7762d47126347c67012c8526035 Mon Sep 17 00:00:00 2001
From: Campbell Barton <ideasman42@gmail.com>
Date: Mon, 17 Mar 2014 03:41:09 +1100
Subject: [PATCH] Fix T39215: Shortest path error

---
 source/blender/bmesh/tools/bmesh_path.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/source/blender/bmesh/tools/bmesh_path.c b/source/blender/bmesh/tools/bmesh_path.c
index 9fc1996e51a..060d0dd969b 100644
--- a/source/blender/bmesh/tools/bmesh_path.c
+++ b/source/blender/bmesh/tools/bmesh_path.c
@@ -193,6 +193,14 @@ static void edgetag_add_adjacent(Heap *heap, BMEdge *e1, BMEdge **edges_prev, fl
 	const int e1_index = BM_elem_index_get(e1);
 
 	BM_ITER_ELEM (v, &viter, e1, BM_VERTS_OF_EDGE) {
+
+		/* don't walk over previous vertex */
+		if ((edges_prev[e1_index]) &&
+		    (BM_vert_in_edge(edges_prev[e1_index], v)))
+		{
+			continue;
+		}
+
 		BM_ITER_ELEM (e2, &eiter, v, BM_EDGES_OF_VERT) {
 			if (!BM_elem_flag_test(e2, BM_ELEM_TAG)) {
 				/* we know 'e2' is not visited, check it out! */
-- 
GitLab