Let G be an undirected plane graph with non-negative edge length, and let k terminal pairs lie on two specified face boundaries. This paper presents an algorithm for finding k "non-crossing paths" in G, each connecting a terminal pair, whose total length is minimum. Here "non-crossing paths" may share common vertices or edges but do not cross each other in the plane. The algorithm runs in time O(nlogn) where n is the number of vertices in G.