--- type0.c.save	Sat Jul 19 19:54:28 2014
+++ type0.c	Sat Jul 19 20:31:03 2014
@@ -213,11 +213,25 @@
     switch (CIDFont_get_subtype(cidfont)) {
     case CIDFONT_TYPE2:
       /* PLEASE FIX THIS */
-      tounicode = Type0Font_create_ToUnicode_stream(font);
+      tounicode = otf_create_ToUnicode_stream(CIDFont_get_ident(cidfont),
+					      CIDFont_get_opt_index(cidfont),
+#ifdef XETEX
+					      CIDFont_get_ft_face(cidfont),
+#endif
+					      Type0Font_get_usedchars(font));
+      if (!tounicode)
+        tounicode = Type0Font_create_ToUnicode_stream(font);
       break;
     default:
       if (CIDFont_get_flag(cidfont, CIDFONT_FLAG_TYPE1C)) { /* FIXME */
-        tounicode = Type0Font_create_ToUnicode_stream(font);
+	tounicode = otf_create_ToUnicode_stream(CIDFont_get_ident(cidfont),
+		 				CIDFont_get_opt_index(cidfont),
+#ifdef XETEX
+						CIDFont_get_ft_face(cidfont),
+#endif
+						Type0Font_get_usedchars(font));
+	if(!tounicode)
+          tounicode = Type0Font_create_ToUnicode_stream(font);
       } else if (CIDFont_get_flag(cidfont, CIDFONT_FLAG_TYPE1)) { /* FIXME */
 	/* Font loader will create ToUnicode and set. */
 	return;
@@ -229,8 +243,16 @@
 	  sprintf(cmap_name, "%s-UCS2", fontname);
 	  tounicode = pdf_read_ToUnicode_file(cmap_name);
 	}
-        if (!tounicode)
-          tounicode = Type0Font_create_ToUnicode_stream(font);
+        if (!tounicode) {
+          tounicode = otf_create_ToUnicode_stream(CIDFont_get_ident(cidfont),
+					      CIDFont_get_opt_index(cidfont),
+#ifdef XETEX
+					      CIDFont_get_ft_face(cidfont),
+#endif
+					      Type0Font_get_usedchars(font));
+          if (!tounicode)
+            tounicode = Type0Font_create_ToUnicode_stream(font);
+        }
 	RELEASE(cmap_name);
       }
       break;
