diff --git a/doc/PdfFontMetricsObject.cpp b/doc/PdfFontMetricsObject.cpp
index 0e11c4a..b0c4e29 100644
--- a/doc/PdfFontMetricsObject.cpp
+++ b/doc/PdfFontMetricsObject.cpp
@@ -208,20 +208,8 @@ double PdfFontMetricsObject::CharWidth( unsigned char c ) const

 double PdfFontMetricsObject::UnicodeCharWidth( unsigned short c ) const
 {
-    c = m_pEncoding->GetEncodedUnicode(c);
-
-    if( c >= m_nFirst && c <= m_nLast
-        && c - m_nFirst < static_cast<int>(m_width.GetSize()) )
-    {
-        double dWidth = m_width[c - m_nFirst].GetReal();
-
-        return (dWidth * m_matrix.front().GetReal() * this->GetFontSize() + this->GetFontCharSpace()) * this->GetFontScale() / 100.0;
-    }
-
-    if( m_missingWidth != NULL )
-        return m_missingWidth->GetReal ();
-    else
-        return m_dDefWidth;
+    double dWidth = GetGlyphWidth(GetGlyphId(c));
+    return (dWidth * m_matrix.front().GetReal() + this->GetFontCharSpace() / 100.0) * this->GetFontSize() * this->GetFontScale() / 100.0;
 }

 void PdfFontMetricsObject::GetWidthArray( PdfVariant & var, unsigned int, unsigned int, const PdfEncoding* ) const
@@ -229,10 +217,18 @@ void PdfFontMetricsObject::GetWidthArray( PdfVariant & var, unsigned int, unsign
     var = m_width;
 }

-double PdfFontMetricsObject::GetGlyphWidth( int ) const
+double PdfFontMetricsObject::GetGlyphWidth( int nGlyphId ) const
 {
-    // TODO
-    return 0.0; // OC 13.08.2010 BugFix: Avoid microsoft compiler error
+    if( nGlyphId >= m_nFirst && nGlyphId <= m_nLast
+        && nGlyphId - m_nFirst < static_cast<int>(m_width.GetSize()) )
+    {
+        return m_width[nGlyphId - m_nFirst].GetReal();
+    }
+
+    if( m_missingWidth != NULL )
+        return m_missingWidth->GetReal ();
+    else
+        return m_dDefWidth;
 }

 double PdfFontMetricsObject::GetGlyphWidth( const char* ) const
@@ -241,10 +237,9 @@ double PdfFontMetricsObject::GetGlyphWidth( const char* ) const
     return 0.0;
 }

-long PdfFontMetricsObject::GetGlyphId( long ) const
+long PdfFontMetricsObject::GetGlyphId( long lUnicode ) const
 {
-    // TODO
-    return 0; // OC 13.08.2010 BugFix: Avoid microsoft compiler error
+    return m_pEncoding->GetEncodedUnicode(lUnicode);
 }

 // -----------------------------------------------------
