FingerCode is a fingerprint correlation matching scheme that relies on texture information. In this scheme, the oriented components are extracted from a fingerprint image using a bank of Gabor filters, and a directional texture feature vector is computed for each oriented component. The feature vectors from the input and template images are compared and a matching score is obtained. Here we explore ways to improve the matching score for the FingerCode method by using more complex matching functions. The best results were obtained by applying a nonlinear function to the texture values and weighting the texture vectors based on the spatial distribution.