To get complete and accurate triangular mesh model in reverse engineering, the hole-filling operation is indispensable. This paper presents a new feature preserving hole-filling algorithm based on the feature line extraction. Firstly, the hole and its neighborhood were obtained. Then, the feature lines in the hole region were extracted which were used to divided the hole to several single surface holes. To each hole, triangulation and subdivision were performed. Finally, the new added vertices in the hole were moved to the underlying surface which was approximated by the hole neighborhood. The experimental results demonstrate that our mesh hole-filling algorithm can effectively recover the original shape of the hole.