--- gfx/src/gtk/nsFontMetricsPango.cpp.behdad	2006-08-03 15:47:28.000000000 -0400
+++ gfx/src/gtk/nsFontMetricsPango.cpp	2006-08-03 21:06:22.000000000 -0400
@@ -409,6 +409,12 @@
 
     pango_fc_font_unlock_face(fcfont);
 
+
+    // watch the leaks in the following
+    /*
+    printf("Metrics for %s:\n", pango_font_description_to_string
+                               (pango_font_describe_with_absolute_size (PANGO_FONT (fcfont))));
+    */
     /*
     printf("%i\n", mXHeight);
     printf("%i\n", mSuperscriptOffset);
@@ -775,6 +781,7 @@
                          gc, x, y, line, aSpacing);
     }
     else {
+        // printf("gdk_draw_layout_line %s\n", text);
         gdk_draw_layout_line(aSurface->GetDrawable(), gc,
                              x, y,
                              line);
@@ -832,7 +839,6 @@
     pango_layout_set_text(layout, text, strlen(text));
     FixupSpaceWidths(layout, text);
 
-    // Get the logical extents
     PangoLayoutLine *line;
     if (pango_layout_get_line_count(layout) != 1) {
         printf("Warning: more than one line!\n");
@@ -841,7 +847,7 @@
 
     // Get the ink extents
     PangoRectangle rect;
-    pango_layout_line_get_extents(line, NULL, &rect);
+    pango_layout_line_get_extents(line, &rect, NULL);
 
     float P2T;
     P2T = mDeviceContext->DevUnitsToAppUnits();
@@ -849,10 +855,10 @@
     aBoundingMetrics.leftBearing =
         NSToCoordRound(rect.x * P2T / PANGO_SCALE);
     aBoundingMetrics.rightBearing =
-        NSToCoordRound(rect.width * P2T / PANGO_SCALE);
-    aBoundingMetrics.width = NSToCoordRound((rect.x + rect.width) * P2T / PANGO_SCALE);
-    aBoundingMetrics.ascent = NSToCoordRound(rect.y * P2T / PANGO_SCALE);
-    aBoundingMetrics.descent = NSToCoordRound(rect.height * P2T / PANGO_SCALE);
+        NSToCoordRound((rect.x + rect.width) * P2T / PANGO_SCALE);
+    aBoundingMetrics.width = NSToCoordRound(rect.width * P2T / PANGO_SCALE);
+    aBoundingMetrics.ascent = NSToCoordRound(-rect.y * P2T / PANGO_SCALE);
+    aBoundingMetrics.descent = NSToCoordRound((rect.y + rect.height) * P2T / PANGO_SCALE);
 
  loser:
     g_free(text);
