Index: pdfbox/src/main/java/org/apache/pdfbox/encoding/DictionaryEncoding.java
===================================================================
--- pdfbox/src/main/java/org/apache/pdfbox/encoding/DictionaryEncoding.java	(revision 1615185)
+++ pdfbox/src/main/java/org/apache/pdfbox/encoding/DictionaryEncoding.java	(working copy)
@@ -41,7 +41,7 @@
      *
      * @throws IOException If there is a problem getting the base font.
      */
-    public DictionaryEncoding( COSDictionary fontEncoding ) throws IOException
+    public DictionaryEncoding( COSDictionary fontEncoding, Encoding baseEncoding ) throws IOException
     {
         encoding = fontEncoding;
 
@@ -55,8 +55,6 @@
         //for a nonsymbolic font, it is StandardEncoding, and for a symbolic font, it
         //is the font�s built-in encoding."
 
-        // The default base encoding is standardEncoding
-        Encoding baseEncoding = StandardEncoding.INSTANCE;
         COSName baseEncodingName =
             (COSName) encoding.getDictionaryObject(COSName.BASE_ENCODING);
         if (baseEncodingName != null) {
@@ -85,6 +83,11 @@
         }
     }
 
+    public DictionaryEncoding( COSDictionary fontEncoding ) throws IOException
+    {
+        this(fontEncoding, StandardEncoding.INSTANCE);
+    }
+
     /**
      * Convert this standard java object to a COS object.
      *
Index: pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java
===================================================================
--- pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java	(revision 1615185)
+++ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDType1CFont.java	(working copy)
@@ -32,9 +32,13 @@
 import org.apache.fontbox.afm.FontMetric;
 import org.apache.fontbox.cff.CFFFont;
 import org.apache.fontbox.cff.CFFParser;
+import org.apache.fontbox.cff.encoding.CFFEncoding;
 import org.apache.pdfbox.cos.COSArray;
+import org.apache.pdfbox.cos.COSBase;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSFloat;
+import org.apache.pdfbox.cos.COSName;
+import org.apache.pdfbox.encoding.DictionaryEncoding;
 import org.apache.pdfbox.encoding.Encoding;
 import org.apache.pdfbox.pdmodel.common.PDMatrix;
 import org.apache.pdfbox.pdmodel.common.PDRectangle;
@@ -42,7 +46,7 @@
 
 /**
  * Adobe CFF Font, also known as a "Type1C" font.
- * 
+ *
  * @author Villu Ruusmann
  */
 public class PDType1CFont extends PDFont
@@ -65,7 +69,7 @@
 
     /**
      * Constructor.
-     * 
+     *
      * @param fontDictionary the corresponding dictionary
      * @throws IOException it something went wrong
      */
@@ -72,7 +76,7 @@
     public PDType1CFont(COSDictionary fontDictionary) throws IOException
     {
         super(fontDictionary);
-        charOffset = getFirstChar() > -1 ? getFirstChar() - 1 : 0; 
+        charOffset = getFirstChar() > -1 ? getFirstChar() - 1 : 0;
         load();
     }
 
@@ -292,6 +296,7 @@
         Encoding encoding = getFontEncoding();
         Map<String, Integer> nameToCode = encoding != null ? encoding.getNameToCodeMap() : null;
         Collection<CFFFont.Mapping> mappings = cffFont.getMappings();
+        determineRealEncoding();
         Map<Integer, String> codeToNameMap = new LinkedHashMap<Integer, String>();
         for (CFFFont.Mapping mapping : mappings)
         {
@@ -356,9 +361,46 @@
         return null;
     }
 
+    private static class CFFBasedEncoding extends Encoding
+    {
+
+        @Override
+        public COSBase getCOSObject()
+        {
+            throw new UnsupportedOperationException("Not implemented");
+        }
+
+        public CFFBasedEncoding(CFFFont font)
+        {
+            for (CFFEncoding.Entry entry : font.getEncoding().getEntries())
+            {
+                addCharacterEncoding(entry.getCode(), font.getCharset().getName(entry.getSID()));
+            }
+        }
+    }
+
+    protected void determineRealEncoding()
+    {
+        COSBase encoding = dict.getDictionaryObject(COSName.ENCODING);
+        Encoding fontEncoding = null;
+        if (encoding != null && encoding instanceof COSDictionary)
+        {
+            try
+            {
+                fontEncoding = new DictionaryEncoding((COSDictionary) encoding,
+                        new CFFBasedEncoding(cffFont));
+            }
+            catch (IOException exception)
+            {
+                LOG.error("Error: Could not create the DictionaryEncoding");
+            }
+        }
+        this.fontEncoding = fontEncoding;
+    }
+
     /**
      * Returns the raw data of the font as CFFFont.
-     * 
+     *
      * @return the cffFont
      * @throws IOException if something went wrong
      */
@@ -366,7 +408,7 @@
     {
         return cffFont;
     }
-    
+
     @Override
     public void clear()
     {
