diff --git a/include/freetype/internal/psaux.h b/include/freetype/internal/psaux.h
index 7357da4..c287974 100644
--- a/include/freetype/internal/psaux.h
+++ b/include/freetype/internal/psaux.h
@@ -1286,9 +1286,9 @@
     (*cff_random)( FT_UInt32  r );
 
     void
-    (*ps_decoder_init)( void*        decoder,
-                        FT_Bool      is_t1,
-                        PS_Decoder*  ps_decoder );
+    (*ps_decoder_init)( PS_Decoder*  ps_decoder,
+                        void*        decoder,
+                        FT_Bool      is_t1 );
 
     void
     (*t1_make_subfont)( FT_Face      face,
diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c
index 917fb3a..9a2080b 100644
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -435,7 +435,7 @@
       else
 #endif
       {
-        psaux->ps_decoder_init( &decoder, FALSE, &psdecoder );
+        psaux->ps_decoder_init( &psdecoder, &decoder, FALSE );
 
         error = decoder_funcs->parse_charstrings( &psdecoder,
                                                   charstring,
diff --git a/src/cid/cidgload.c b/src/cid/cidgload.c
index 9f47dcd..2194151 100644
--- a/src/cid/cidgload.c
+++ b/src/cid/cidgload.c
@@ -187,7 +187,7 @@
         CFF_SubFontRec  subfont;
 
 
-        psaux->ps_decoder_init( decoder, TRUE, &psdecoder );
+        psaux->ps_decoder_init( &psdecoder, decoder, TRUE );
 
         psaux->t1_make_subfont( FT_FACE( face ), &dict->private_dict, &subfont );
         psdecoder.current_subfont = &subfont;
diff --git a/src/psaux/Jamfile b/src/psaux/Jamfile
index ab861e6..0e5944d 100644
--- a/src/psaux/Jamfile
+++ b/src/psaux/Jamfile
@@ -23,7 +23,6 @@
                t1cmap
                t1decode
                cffdecode
-               psdecode
                psarrst
                psblues
                pserror
diff --git a/src/psaux/psaux.c b/src/psaux/psaux.c
index 8c9e633..e30c9b0 100644
--- a/src/psaux/psaux.c
+++ b/src/psaux/psaux.c
@@ -26,7 +26,6 @@
 #include "t1cmap.c"
 #include "t1decode.c"
 #include "cffdecode.c"
-#include "psdecode.c"
 
 #include "psarrst.c"
 #include "psblues.c"
diff --git a/src/psaux/psauxmod.c b/src/psaux/psauxmod.c
index b071929..fea60ce 100644
--- a/src/psaux/psauxmod.c
+++ b/src/psaux/psauxmod.c
@@ -23,7 +23,6 @@
 #include "t1cmap.h"
 #include "psft.h"
 #include "cffdecode.h"
-#include "psdecode.h"
 
 #ifndef T1_CONFIG_OPTION_NO_AFM
 #include "afmparse.h"
diff --git a/src/psaux/psdecode.c b/src/psaux/psdecode.c
deleted file mode 100644
index c8a5d01..0000000
--- a/src/psaux/psdecode.c
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_SERVICE_H
-
-#include "psdecode.h"
-#include "psobjs.h"
-
-#include "psauxerr.h"
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* <Function>                                                            */
-  /*    ps_decoder_init                                                    */
-  /*                                                                       */
-  /* <Description>                                                         */
-  /*    Creates a decoder for the combined Type 1 / CFF interpreter.       */
-  /*                                                                       */
-  /* <InOut>                                                               */
-  /*    decoder :: A pointer to the glyph builder to initialize.           */
-  /*                                                                       */
-  /* <Input>                                                               */
-  /*                                                                       */
-  /*                                                                       */
-  /*                                                                       */
-  /*                                                                       */
-  /*                                                                       */
-  FT_LOCAL_DEF( void )
-  ps_decoder_init( void*        decoder,
-                   FT_Bool      is_t1,
-                   PS_Decoder*  ps_decoder )
-  {
-    FT_ZERO( ps_decoder );
-
-    if ( is_t1 )
-    {
-      T1_Decoder  t1_decoder = (T1_Decoder)decoder;
-
-      ps_builder_init( &t1_decoder->builder,
-                       is_t1,
-                       &ps_decoder->builder );
-
-      ps_decoder->cf2_instance       = &t1_decoder->cf2_instance;
-      ps_decoder->psnames            =  t1_decoder->psnames;
-
-      ps_decoder->num_glyphs         =  t1_decoder->num_glyphs;
-      ps_decoder->glyph_names        =  t1_decoder->glyph_names;
-      ps_decoder->hint_mode          =  t1_decoder->hint_mode;
-      ps_decoder->blend              =  t1_decoder->blend;
-
-      ps_decoder->num_locals         =  t1_decoder->num_subrs;
-      ps_decoder->locals             =  t1_decoder->subrs;
-      ps_decoder->locals_len         =  t1_decoder->subrs_len;
-      ps_decoder->locals_hash        =  t1_decoder->subrs_hash;
-
-      ps_decoder->buildchar          =  t1_decoder->buildchar;
-      ps_decoder->len_buildchar      =  t1_decoder->len_buildchar;
-
-      ps_decoder->lenIV              =  t1_decoder->lenIV;
-    }
-    else
-    {
-      CFF_Decoder*  cff_decoder = (CFF_Decoder*)decoder;
-
-      ps_builder_init( &cff_decoder->builder,
-                       is_t1,
-                       &ps_decoder->builder );
-
-      ps_decoder->cff                 =  cff_decoder->cff;
-      ps_decoder->cf2_instance        = &cff_decoder->cff->cf2_instance;
-      ps_decoder->current_subfont     =  cff_decoder->current_subfont;
-
-      ps_decoder->num_globals         =  cff_decoder->num_globals;
-      ps_decoder->globals             =  cff_decoder->globals;
-      ps_decoder->globals_bias        =  cff_decoder->globals_bias;
-      ps_decoder->num_locals          =  cff_decoder->num_locals;
-      ps_decoder->locals              =  cff_decoder->locals;
-      ps_decoder->locals_bias         =  cff_decoder->locals_bias;
-
-      ps_decoder->glyph_width         =  cff_decoder->glyph_width;
-      ps_decoder->nominal_width       =  cff_decoder->nominal_width;
-      ps_decoder->width_only          =  cff_decoder->width_only;
-
-      ps_decoder->hint_mode           =  cff_decoder->hint_mode;
-
-      ps_decoder->get_glyph_callback  =  cff_decoder->get_glyph_callback;
-      ps_decoder->free_glyph_callback =  cff_decoder->free_glyph_callback;
-    }
-  }
-
diff --git a/src/psaux/psdecode.h b/src/psaux/psdecode.h
deleted file mode 100644
index dd7e6f2..0000000
--- a/src/psaux/psdecode.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef PSDECODE_H_
-#define PSDECODE_H_
-
-
-#include <ft2build.h>
-#include FT_INTERNAL_POSTSCRIPT_AUX_H
-
-
-FT_BEGIN_HEADER
-
-  FT_LOCAL( void )
-  ps_decoder_init( void*        decoder,
-                   FT_Bool      is_t1,
-                   PS_Decoder*  ps_decoder );
-
-
-FT_END_HEADER
-
-#endif
-
diff --git a/src/psaux/psobjs.c b/src/psaux/psobjs.c
index b592163..d643afe 100644
--- a/src/psaux/psobjs.c
+++ b/src/psaux/psobjs.c
@@ -2328,6 +2328,87 @@
   /*************************************************************************/
 
 
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    ps_decoder_init                                                    */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Creates a wrapper decoder for use in the combined                  */
+  /*    Type 1 / CFF interpreter.                                          */
+  /*                                                                       */
+  /* <InOut>                                                               */
+  /*    ps_decoder :: A pointer to the decoder to initialize.              */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    decoder    :: A pointer to the original decoder.                   */
+  /*                                                                       */
+  /*    is_t1      :: Flag indicating Type 1 or CFF                        */
+  /*                                                                       */
+  FT_LOCAL_DEF( void )
+  ps_decoder_init( PS_Decoder*  ps_decoder,
+                   void*        decoder,
+                   FT_Bool      is_t1 )
+  {
+    FT_ZERO( ps_decoder );
+
+    if ( is_t1 )
+    {
+      T1_Decoder  t1_decoder = (T1_Decoder)decoder;
+
+      ps_builder_init( &t1_decoder->builder,
+                       is_t1,
+                       &ps_decoder->builder );
+
+      ps_decoder->cf2_instance       = &t1_decoder->cf2_instance;
+      ps_decoder->psnames            =  t1_decoder->psnames;
+
+      ps_decoder->num_glyphs         =  t1_decoder->num_glyphs;
+      ps_decoder->glyph_names        =  t1_decoder->glyph_names;
+      ps_decoder->hint_mode          =  t1_decoder->hint_mode;
+      ps_decoder->blend              =  t1_decoder->blend;
+
+      ps_decoder->num_locals         =  t1_decoder->num_subrs;
+      ps_decoder->locals             =  t1_decoder->subrs;
+      ps_decoder->locals_len         =  t1_decoder->subrs_len;
+      ps_decoder->locals_hash        =  t1_decoder->subrs_hash;
+
+      ps_decoder->buildchar          =  t1_decoder->buildchar;
+      ps_decoder->len_buildchar      =  t1_decoder->len_buildchar;
+
+      ps_decoder->lenIV              =  t1_decoder->lenIV;
+    }
+    else
+    {
+      CFF_Decoder*  cff_decoder = (CFF_Decoder*)decoder;
+
+      ps_builder_init( &cff_decoder->builder,
+                       is_t1,
+                       &ps_decoder->builder );
+
+      ps_decoder->cff                 =  cff_decoder->cff;
+      ps_decoder->cf2_instance        = &cff_decoder->cff->cf2_instance;
+      ps_decoder->current_subfont     =  cff_decoder->current_subfont;
+
+      ps_decoder->num_globals         =  cff_decoder->num_globals;
+      ps_decoder->globals             =  cff_decoder->globals;
+      ps_decoder->globals_bias        =  cff_decoder->globals_bias;
+      ps_decoder->num_locals          =  cff_decoder->num_locals;
+      ps_decoder->locals              =  cff_decoder->locals;
+      ps_decoder->locals_bias         =  cff_decoder->locals_bias;
+
+      ps_decoder->glyph_width         =  cff_decoder->glyph_width;
+      ps_decoder->nominal_width       =  cff_decoder->nominal_width;
+      ps_decoder->width_only          =  cff_decoder->width_only;
+
+      ps_decoder->hint_mode           =  cff_decoder->hint_mode;
+
+      ps_decoder->get_glyph_callback  =  cff_decoder->get_glyph_callback;
+      ps_decoder->free_glyph_callback =  cff_decoder->free_glyph_callback;
+    }
+  }
+
+
   FT_LOCAL_DEF( void )
   t1_make_subfont( FT_Face      face,
                    PS_Private   priv,
diff --git a/src/psaux/psobjs.h b/src/psaux/psobjs.h
index aed19de..6773eac 100644
--- a/src/psaux/psobjs.h
+++ b/src/psaux/psobjs.h
@@ -285,6 +285,11 @@
   /*************************************************************************/
 
   FT_LOCAL( void )
+  ps_decoder_init( PS_Decoder*  ps_decoder,
+                   void*        decoder,
+                   FT_Bool      is_t1 );
+
+  FT_LOCAL( void )
   t1_make_subfont( FT_Face      face,
                    PS_Private   priv,
                    CFF_SubFont  subfont );
diff --git a/src/psaux/rules.mk b/src/psaux/rules.mk
index 55a835f..266d446 100644
--- a/src/psaux/rules.mk
+++ b/src/psaux/rules.mk
@@ -36,7 +36,6 @@
                  $(PSAUX_DIR)/psauxmod.c \
                  $(PSAUX_DIR)/psarrst.c \
                  $(PSAUX_DIR)/psblues.c \
-                 $(PSAUX_DIR)/psdecode.c \
                  $(PSAUX_DIR)/pserror.c \
                  $(PSAUX_DIR)/psfont.c  \
                  $(PSAUX_DIR)/psft.c    \
diff --git a/src/type1/t1gload.c b/src/type1/t1gload.c
index 6e5d3e8..e5f88d0 100644
--- a/src/type1/t1gload.c
+++ b/src/type1/t1gload.c
@@ -110,7 +110,7 @@
         CFF_SubFontRec  subfont;
 
 
-        psaux->ps_decoder_init( decoder, TRUE, &psdecoder );
+        psaux->ps_decoder_init( &psdecoder, decoder, TRUE );
 
         psaux->t1_make_subfont( FT_FACE( face ), &face->type1.private_dict, &subfont );
         psdecoder.current_subfont = &subfont;
