diff -ru modules/basic/basic-atsui.c modules/basic/basic-atsui.c
--- modules/basic/basic-atsui.c	2008-07-05 20:34:52.000000000 +0200
+++ modules/basic/basic-atsui.c	2008-10-30 11:35:37.000000000 +0100
@@ -86,10 +86,10 @@
   const char *p;
   PangoATSUIFont *afont = PANGO_ATSUI_FONT (font);
   ATSUStyle style;
-  ATSUFontID fontID;
+  CGFontRef fontID;
   ATSUAttributeTag styleTags[] = { kATSUFontTag };
   ATSUAttributeValuePtr styleValues[] = { &fontID };
-  ByteCount styleSizes[] = { sizeof (ATSUFontID) };
+  ByteCount styleSizes[] = { sizeof (CGFontRef) };
 
   utf16 = g_utf8_to_utf16 (text, length, NULL, &n16, NULL);
 
@@ -97,7 +97,7 @@
   err = ATSUSetTextPointerLocation (text_layout, utf16, 0, n16, n16);
 
   err = ATSUCreateStyle(&style);
-  fontID = pango_atsui_font_get_atsu_font_id (afont);
+  fontID = pango_atsui_font_get_cgfont (afont);
 
   err = ATSUSetAttributes(style,
 			  sizeof(styleTags) / sizeof(styleTags[0]),
diff -ru pango/pangoatsui-private.h pango/pangoatsui-private.h
--- pango/pangoatsui-private.h	2008-07-05 20:34:52.000000000 +0200
+++ pango/pangoatsui-private.h	2008-10-30 11:34:51.000000000 +0100
@@ -93,8 +93,8 @@
 gpointer              _pango_atsui_font_get_context_key      (PangoATSUIFont    *afont);
 void                  _pango_atsui_font_set_context_key      (PangoATSUIFont    *afont,
                                                               gpointer           context_key);
-void                  _pango_atsui_font_set_atsu_font_id     (PangoATSUIFont    *font,
-                                                              ATSUFontID         font_id);
+void                  _pango_atsui_font_set_cgfont           (PangoATSUIFont    *font,
+                                                              CGFontRef         font_id);
 
 G_END_DECLS
 
diff -ru pango/pangoatsui.c pango/pangoatsui.c
--- pango/pangoatsui.c	2008-08-22 09:50:54.000000000 +0200
+++ pango/pangoatsui.c	2008-10-30 11:02:32.000000000 +0100
@@ -32,7 +32,7 @@
   PangoFontDescription *desc;
   gpointer context_key;
 
-  ATSUFontID font_id;
+  CGFontRef font_id;
 
   PangoFontMap *fontmap;
 };
@@ -176,8 +176,8 @@
 }
 
 void
-_pango_atsui_font_set_atsu_font_id (PangoATSUIFont *font,
-                                    ATSUFontID      font_id)
+_pango_atsui_font_set_cgfont (PangoATSUIFont *font,
+                                    CGFontRef      font_id)
 {
   PangoATSUIFontPrivate *priv = font->priv;
 
@@ -185,17 +185,17 @@
 }
 
 /**
- * pango_atsui_font_get_atsu_font_id:
+ * pango_atsui_font_get_cgfont:
  * @font: A #PangoATSUIFont
  *
- * Returns the ATSUFontID of a font.
+ * Returns the CGFontRef of a font.
  *
- * Return value: the ATSUFontID associated to @font.
+ * Return value: the CGFontRef associated to @font.
  *
  * Since: 1.18
  */
-ATSUFontID
-pango_atsui_font_get_atsu_font_id (PangoATSUIFont *font)
+CGFontRef
+pango_atsui_font_get_cgfont (PangoATSUIFont *font)
 {
   PangoATSUIFontPrivate *priv = font->priv;
 
diff -ru pango/pangoatsui.h pango/pangoatsui.h
--- pango/pangoatsui.h	2008-07-05 20:34:52.000000000 +0200
+++ pango/pangoatsui.h	2008-10-30 11:34:26.000000000 +0100
@@ -68,7 +68,7 @@
 
 #endif /* PANGO_ENABLE_BACKEND */
 
-ATSUFontID pango_atsui_font_get_atsu_font_id (PangoATSUIFont *font);
+CGFontRef pango_atsui_font_get_cgfont (PangoATSUIFont *font);
 
 #endif /* PANGO_ENABLE_ENGINE || PANGO_ENABLE_BACKEND */
 
diff -ru pango/pangocairo-atsuifont.c pango/pangocairo-atsuifont.c
--- pango/pangocairo-atsuifont.c	2008-07-05 20:34:52.000000000 +0200
+++ pango/pangocairo-atsuifont.c	2008-10-30 11:33:44.000000000 +0100
@@ -82,10 +82,10 @@
 pango_cairo_atsui_font_create_font_face (PangoCairoFont *font)
 {
   PangoATSUIFont *afont = (PangoATSUIFont *) (font);
-  ATSUFontID font_id;
+  CGFontRef font_id;
 
-  font_id = pango_atsui_font_get_atsu_font_id (afont);
-  return cairo_quartz_font_face_create_for_atsu_font_id (font_id);
+  font_id = pango_atsui_font_get_cgfont (afont);
+  return cairo_quartz_font_face_create_for_cgfont (font_id);
 }
 
 static int
@@ -118,8 +118,8 @@
 {
   PangoCairoATSUIFont *cafont = (PangoCairoATSUIFont *) font;
   PangoATSUIFont *afont = (PangoATSUIFont *) font;
-  ATSFontRef ats_font;
-  ATSFontMetrics ats_metrics;
+  CGFontRef cg_font;
+  CTFontRef ct_font;
   PangoFontMetrics *metrics;
   PangoFontDescription *font_desc;
   PangoLayout *layout;
@@ -127,20 +127,19 @@
   PangoLanguage *language = pango_context_get_language (context);
   const char *sample_str = pango_language_get_sample_string (language);
 
-  ats_font = FMGetATSFontRefFromFont (pango_atsui_font_get_atsu_font_id (afont));
-
-  ATSFontGetHorizontalMetrics (ats_font, kATSOptionFlagsDefault, &ats_metrics);
+  cg_font = pango_atsui_font_get_cgfont (afont);
+  ct_font = CTFontCreateWithGraphicsFont(cg_font, cafont->size, NULL, NULL);
 
   metrics = pango_font_metrics_new ();
 
-  metrics->ascent = ats_metrics.ascent * cafont->size * PANGO_SCALE;
-  metrics->descent = -ats_metrics.descent * cafont->size * PANGO_SCALE;
+  metrics->ascent = CTFontGetAscent(ct_font) * PANGO_SCALE;
+  metrics->descent = -CTFontGetDescent(ct_font) * PANGO_SCALE;
 
-  metrics->underline_position = ats_metrics.underlinePosition * cafont->size * PANGO_SCALE;
-  metrics->underline_thickness = ats_metrics.underlineThickness * cafont->size * PANGO_SCALE;
+  metrics->underline_position = CTFontGetUnderlinePosition(ct_font) * PANGO_SCALE;
+  metrics->underline_thickness = CTFontGetUnderlineThickness(ct_font) * PANGO_SCALE;
 
   metrics->strikethrough_position = metrics->ascent / 3;
-  metrics->strikethrough_thickness = ats_metrics.underlineThickness * cafont->size * PANGO_SCALE;
+  metrics->strikethrough_thickness = metrics->underline_thickness * PANGO_SCALE;
 
   layout = pango_layout_new (context);
   font_desc = pango_font_describe_with_absolute_size ((PangoFont *) font);
@@ -155,6 +154,8 @@
 
   pango_font_description_free (font_desc);
   g_object_unref (layout);
+  
+  
 
   return metrics;
 }
@@ -207,7 +208,7 @@
   PangoATSUIFont *afont;
   CFStringRef cfstr;
   ATSFontRef font_ref;
-  ATSUFontID font_id;
+  CGFontRef font_id;
   double size;
   double dpi;
   double m;
@@ -252,7 +253,7 @@
   if (font_ref == kATSFontRefUnspecified)
     return NULL;
 
-  font_id = FMGetFontFromATSFontRef (font_ref);
+  font_id = CGFontCreateWithPlatformFont (&font_ref);
   if (!font_id)
     return NULL;
 
@@ -263,7 +264,7 @@
   _pango_atsui_font_set_face (afont, face);
 
   size = (double) pango_font_description_get_size (desc) / PANGO_SCALE;
-  _pango_atsui_font_set_atsu_font_id (afont, font_id);
+  _pango_atsui_font_set_cgfont (afont, font_id);
 
   if (context)
     {
