We present a new algorithm to compute a geodesic path over a triangle mesh. Based on Novotni's propagating wavefront method which is similar to the well known Dijkstra algorithm, we made some improvements which Novotni had missed and we also gave the method to find out the geodesic path which Novotni had not. It can handle both convex and non-convex surfaces or even with boundaries. Experiment results show that our method works very well both in efficiency and precision.