Index: src/font.c
===================================================================
--- src/font.c	(revision 983)
+++ src/font.c	(working copy)
@@ -419,7 +419,41 @@
 }
 
 
+static PyObject* font_metrics(PyObject* self, PyObject* args)
+{
+	TTF_Font* font = PyFont_AsFont(self);
+    int minx, int maxx, int miny, int maxy, int advance;
+	PyObject* text;
+    Py_UNICODE ch = (Py_UNICODE)0;
+    int res;
+    
+	if(!PyArg_ParseTuple(args, "O", &text))
+		return NULL;
 
+	if(PyUnicode_Check(text))
+	{
+        Py_UNICODE* string = PyUnicode_AS_UNICODE(text);
+        if (string==NULL || string[0] == (Py_UNICODE)0)
+            return NULL;
+        ch = string[0];
+	}
+	else if(PyString_Check(text))
+	{
+		char* string = PyString_AsString(text);
+        if (string == NULL || string[0]==(char)0)
+            return NULL;
+        ch = (Py_UNICODE)string[0];
+	}
+	else
+		return RAISE(PyExc_TypeError, "text must be a string or unicode");
+
+    res=TTF_GlyphMetrics(font, (Uint16) ch, &minx, &maxx, &miny, &maxy, &advance);
+    if (!res)
+        return Py_BuildValue("(iiiii)", minx, maxx, miny, maxy, advance);
+    return NULL;
+}
+
+
 static PyMethodDef font_methods[] =
 {
 	{ "get_height", font_get_height, 1, DOC_FONTGETHEIGHT },
@@ -436,6 +470,8 @@
 
 	{ "render", font_render, 1, DOC_FONTRENDER },
 	{ "size", font_size, 1, DOC_FONTSIZE },
+	{ "metrics", font_metrics, 1, DOC_FONTMETRICS },
+    
 
 	{ NULL, NULL }
 };
Index: src/pygamedocs.h
===================================================================
--- src/pygamedocs.h	(revision 983)
+++ src/pygamedocs.h	(working copy)
@@ -194,6 +194,8 @@
 
 #define DOC_FONTSIZE "Font.size(text): return (width, height)\ndetermine the amount of space needed to render text"
 
+#define DOC_FONTMETRICS "Font.metrics(char): return (minx, maxx,miny, maxy, advance)\nreturns the metrics of the first character of the given string"
+
 #define DOC_FONTSETUNDERLINE "Font.set_underline(bool): return None\ncontrol if text is rendered with an underline"
 
 #define DOC_FONTGETUNDERLINE "Font.get_underline(): return bool\ncheck if text will be rendered with an underline"
