Suppose we are given only a surface mesh of vertices and polygons approximating some unknown smooth surface. There have been many methods proposed for approximating principal directions of the underlying surface. In this paper we will examine a few of the known methods, showing how well they can work for some surfaces and how miserably they can fail for others. In particular we will show that very tiny approximation errors can be magnified into large directional errors. We also introduce a new method that we believe performs significantly better than the others. In section I, we will outline the basic mathematics behind computing principal directions, stating the necessary formulas for the Weingarten curvature matrix and for its use in computing normal curvature in a given direction. In section II we describe in detail three methods each of which approximates the Weingarten curvature matrix at a vertex of the mesh. In section III we apply each method to some surfaces using a number of different mesh schemes and examine the direction errors. In section IV we develop some mathematical relationships between surface approximation errors and errors in principal directions.