diff --git a/src/cid/cidobjs.c b/src/cid/cidobjs.c
index a10532037..f8ba3aeb3 100644
--- a/src/cid/cidobjs.c
+++ b/src/cid/cidobjs.c
@@ -222,9 +222,11 @@
         root->available_sizes = 0;
 
         root->bbox         = face->cid.font_bbox;
-        root->units_per_EM = 1000;
-        root->ascender     = (FT_Short)face->cid.font_bbox.yMax;
-        root->descender    = (FT_Short)face->cid.font_bbox.yMin;
+        if ( !root->units_per_EM )
+          root->units_per_EM  = 1000;
+
+        root->ascender     = face->cid.font_bbox.yMax >> 16;
+        root->descender    = face->cid.font_bbox.yMin >> 16;
         root->height       = ( ( root->ascender + root->descender ) * 12 )
                              / 10;