Index: src/java/org/apache/fop/render/pdf/PDFRenderer.java
===================================================================
--- src/java/org/apache/fop/render/pdf/PDFRenderer.java	(revision 564165)
+++ src/java/org/apache/fop/render/pdf/PDFRenderer.java	(working copy)
@@ -820,7 +820,7 @@
         float w = x2 - x1;
         float h = y2 - y1;
         if ((w < 0) || (h < 0)) {
-            log.error("Negative extent received. Border won't be painted.");
+            log.error("Negative extent received (w=" + w + ", h=" + h + "). Border won't be painted.");
             return;
         }
         switch (style) {
Index: src/java/org/apache/fop/fonts/type1/PFMFile.java
===================================================================
--- src/java/org/apache/fop/fonts/type1/PFMFile.java	(revision 564165)
+++ src/java/org/apache/fop/fonts/type1/PFMFile.java	(working copy)
@@ -236,7 +236,7 @@
         etmCapHeight = inStream.readShort();
         etmXHeight = inStream.readShort();
         etmLowerCaseAscent = inStream.readShort();
-        etmLowerCaseDescent = inStream.readShort();
+        etmLowerCaseDescent = -(inStream.readShort());
         //Ignore the rest of the values
     }
 
@@ -391,7 +391,7 @@
         } else {
             bbox[0] = -100;
         }
-        bbox[1] = -(getLowerCaseDescent() + 5);
+        bbox[1] = getLowerCaseDescent() - 5;
         bbox[2] = dfMaxWidth + 10;
         bbox[3] = getLowerCaseAscent() + 5;
         return bbox;
