diff --git a/src/base/ftextend.c b/src/base/ftextend.c
index 20691b6..9bbe0bf 100644
--- a/src/base/ftextend.c
+++ b/src/base/ftextend.c
@@ -25,7 +25,6 @@
   /*************************************************************************/
 
 #include <ftextend.h>
-#include <ftobjs.h>
 
 /* required by the tracing mode */
 #undef  FT_COMPONENT
diff --git a/src/base/ftextend.h b/src/base/ftextend.h
index b3e0c54..ddd891d 100644
--- a/src/base/ftextend.h
+++ b/src/base/ftextend.h
@@ -18,7 +18,6 @@
 #ifndef FTEXTEND_H
 #define FTEXTEND_H
 
-#include <ftconfig.h>
 #include <ftobjs.h>
 
 
diff --git a/src/sfnt/rules.mk b/src/sfnt/rules.mk
index 0880dc2..e67e4ff 100644
--- a/src/sfnt/rules.mk
+++ b/src/sfnt/rules.mk
@@ -46,7 +46,6 @@
   # driver headers
   #
   SFNT_DRV_H := $(SHARED_H)            \
-                $(SFNT_DIR_)sfconfig.h \
                 $(SFNT_DIR_)ttload.h   \
                 $(SFNT_DIR_)ttsbit.h   \
                 $(SFNT_DIR_)ttcmap.h   \
diff --git a/src/sfnt/sfconfig.h b/src/sfnt/sfconfig.h
deleted file mode 100644
index fc36070..0000000
--- a/src/sfnt/sfconfig.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  sfconfig.h                                                             */
-/*                                                                         */
-/*    the `sfnt' driver configuration file.                                */
-/*                                                                         */
-/*  Copyright 1996-1999 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to configure various aspects of the TrueType        */
-  /* driver.                                                               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef SFCONFIG_H
-#define SFCONFIG_H
-
-
-#if 0
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support       */
-  /* embedded bitmaps in the TrueType/OpenType driver.                     */
-  /*                                                                       */
-#define  TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to    */
-  /* load and enumerate the glyph Postscript names in a TrueType or        */
-  /* OpenType file.                                                        */
-  /*                                                                       */
-  /* Note that if FT_CONFIG_OPTION_POSTSCRIPT_NAMES is also defined,       */
-  /* the TrueType driver will use the "psnames" module to fetch the        */
-  /* glyph names.                                                          */
-  /*                                                                       */
-  /* Otherwise, the driver will provide its own set of glyph names to      */
-  /* be built without the "psnames" module.                                */
-  /*                                                                       */
-#define  TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-#endif
-
-
-#endif /* SFCONFIG_H */
-
-
-/* END */
diff --git a/src/sfnt/sfdriver.c b/src/sfnt/sfdriver.c
index 0d187f3..93472d9 100644
--- a/src/sfnt/sfdriver.c
+++ b/src/sfnt/sfdriver.c
@@ -3,7 +3,6 @@
 #include <ttsbit.h>
 #include <ttpost.h>
 #include <ttcmap.h>
-#include <sfconfig.h>
 #include <sfnt.h>
 
   static const SFNT_Interface  sfnt_interface =
diff --git a/src/sfnt/sfnt.c b/src/sfnt/sfnt.c
index cdf2c02..319659a 100644
--- a/src/sfnt/sfnt.c
+++ b/src/sfnt/sfnt.c
@@ -1,6 +1,5 @@
 #define FT_MAKE_OPTION_SINGLE_OBJECT
 
-#include <sfconfig.h>
 #include <ttload.c>
 #include <ttcmap.c>
 
diff --git a/src/sfnt/ttload.c b/src/sfnt/ttload.c
index 45df713..c40ec8d 100644
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -22,6 +22,7 @@
 
 
 #include <ftdebug.h>
+#include <ftconfig.h>
 
 #include <ttload.h>
 #include <tttags.h>
diff --git a/src/sfnt/ttpost.c b/src/sfnt/ttpost.c
index 07a6c08..b55eb5b 100644
--- a/src/sfnt/ttpost.c
+++ b/src/sfnt/ttpost.c
@@ -24,9 +24,9 @@
   /*                                                                       */
   /*************************************************************************/
 
+#include <ftstream.h>
 
 #include <ttpost.h>
-#include <ftstream.h>
 #include <tterrors.h>
 #include <ttload.h>
 #include <tttags.h>
diff --git a/src/truetype/rules.mk b/src/truetype/rules.mk
index 94678b7..8ed78a7 100644
--- a/src/truetype/rules.mk
+++ b/src/truetype/rules.mk
@@ -52,7 +52,6 @@
 # driver headers
 #
 TT_DRV_H := $(SFNT_H)             \
-            $(TT_DIR_)ttconfig.h  \
             $(TT_DRV_SRC:%.c=%.h)
 
 
diff --git a/src/truetype/ttconfig.h b/src/truetype/ttconfig.h
deleted file mode 100644
index 9a797ea..0000000
--- a/src/truetype/ttconfig.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/***************************************************************************/
-/*                                                                         */
-/*  ttconfig.h                                                             */
-/*                                                                         */
-/*    TrueType configuration file (specification only).                    */
-/*                                                                         */
-/*  Copyright 1996-1999 by                                                 */
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
-/*                                                                         */
-/*  This file is part of the FreeType project, and may only be used        */
-/*  modified and distributed under the terms of the FreeType project       */
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
-/*  this file you indicate that you have read the license and              */
-/*  understand and accept it fully.                                        */
-/*                                                                         */
-/***************************************************************************/
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* This file is used to configure various aspects of the TrueType        */
-  /* driver.                                                               */
-  /*                                                                       */
-  /*************************************************************************/
-
-
-#ifndef TTCONFIG_H
-#define TTCONFIG_H
-
-#if 0
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile   */
-  /* a bytecode interpreter in the TrueType driver. Note that there are    */
-  /* important patent issues related to the use of the interpreter.        */
-  /*                                                                       */
-  /* By undefining this, you'll only compile the code necessary to load    */
-  /* TrueType glyphs without hinting..                                     */
-  /*                                                                       */
-#define  TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType    */
-  /* bytecode interpreter with a huge switch statement, rather than a      */
-  /* call table.  This results in smaller and faster code for a number of  */
-  /* architectures.                                                        */
-  /*                                                                       */
-  /* Note however that on some compiler/processor combinations, undefining */
-  /* this macro will generate a faster, though larger, code.               */
-  /*                                                                       */
-#define TT_CONFIG_OPTION_INTERPRETER_SWITCH
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support       */
-  /* embedded bitmaps in the TrueType/OpenType driver.                     */
-  /*                                                                       */
-#define  TT_CONFIG_OPTION_EMBEDDED_BITMAPS
-
-
-  /*************************************************************************/
-  /*                                                                       */
-  /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to    */
-  /* load and enumerate the glyph Postscript names in a TrueType or        */
-  /* OpenType file.                                                        */
-  /*                                                                       */
-#define  TT_CONFIG_OPTION_POSTSCRIPT_NAMES
-
-  /* The maximum number of sub-glyphs in a TrueType composite glyph */
-#define TT_MAX_SUBGLYPHS  32
-
-#define  TT_USE_FIXED
-#endif
-
-#endif /* TTCONFIG_H */
-
-
-/* END */
diff --git a/src/truetype/ttdriver.h b/src/truetype/ttdriver.h
index 199934f..062e701 100644
--- a/src/truetype/ttdriver.h
+++ b/src/truetype/ttdriver.h
@@ -27,7 +27,7 @@
 
 
   EXPORT_DEF
-  const FT_DriverInterface  ttz_driver_interface;
+  const FT_DriverInterface  tt_driver_interface;
 
 
 #endif /* TTDRIVER_H */
diff --git a/src/truetype/ttobjs.h b/src/truetype/ttobjs.h
index 8dd990f..e22d3f6 100644
--- a/src/truetype/ttobjs.h
+++ b/src/truetype/ttobjs.h
@@ -22,7 +22,6 @@
 
 #include <ftobjs.h>
 #include <tttypes.h>
-#include <ttconfig.h>
 #include <tterrors.h>
 
 
diff --git a/src/type1/rules.mk b/src/type1/rules.mk
index dba40a2..3680523 100644
--- a/src/type1/rules.mk
+++ b/src/type1/rules.mk
@@ -109,7 +109,6 @@
 # Type1 driver headers
 #
 T1_DRV_H := $(T1_DIR_)t1errors.h    \
-            $(T1_DIR_)t1config.h    \
             $(T1SHARED_H)           \
             $(T1_DRV_SRC:%.c=%.h)
 
diff --git a/src/type1/t1afm.c b/src/type1/t1afm.c
index f619e28..036aa5e 100644
--- a/src/type1/t1afm.c
+++ b/src/type1/t1afm.c
@@ -10,12 +10,14 @@
 #include <t1types.h>
 #include <stdlib.h>  /* for qsort */
 
+#if 0
   LOCAL_FUNC
   void  T1_Done_AFM( FT_Memory memory, T1_AFM*  afm )
   {
     FREE( afm->kern_pairs );
     afm->num_pairs = 0;
   }
+#endif
 
 #undef  IS_KERN_PAIR
 #define IS_KERN_PAIR(p)  ( p[0] == 'K'  &&  p[1] == 'P' )
diff --git a/src/type1/t1afm.h b/src/type1/t1afm.h
index 567ed63..366c2f2 100644
--- a/src/type1/t1afm.h
+++ b/src/type1/t1afm.h
@@ -34,9 +34,11 @@
 FT_Error  T1_Read_AFM( FT_Face   face,
                        FT_Stream stream );
 
+#if 0
 LOCAL_DEF
 void      T1_Done_AFM( FT_Memory  memory,
                        T1_AFM*    afm );
+#endif
 
 LOCAL_DEF
 void  T1_Get_Kerning( T1_AFM*     afm,
diff --git a/src/type1/t1config.h b/src/type1/t1config.h
deleted file mode 100644
index cc546d0..0000000
--- a/src/type1/t1config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************
- *
- *  t1config.h
- *
- *    Type 1 driver configuration file
- *
- *  Copyright 1996-1998 by
- *  David Turner, Robert Wilhelm, and Werner Lemberg.
- *
- *  This file is part of the FreeType project, and may only be used,
- *  modified, and distributed under the terms of the FreeType project
- *  license, LICENSE.TXT.  By continuing to use, modify, or distribute 
- *  this file you indicate that you have read the license and
- *  understand and accept it fully.
- *
- ******************************************************************/
-
-#ifndef T1CONFIG_H
-#define T1CONFIG_H
-
-#if 0
-/* T1_MAX_STACK_DEPTH is the maximal depth of the token stack used */
-/* by the Type 1 parser (see t1load.c). A minimum of 16 is required */
-/*                                                                 */
-#define T1_MAX_STACK_DEPTH  16
-
-/* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and */
-/* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is   */
-/* required                                                        */
-#define T1_MAX_DICT_DEPTH   5
-
-/* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */
-/* calls during glyph loading                                          */
-#define T1_MAX_SUBRS_CALLS   8
-
-
-/* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity */
-#define T1_MAX_CHARSTRINGS_OPERANDS  32
-
-
-/* Define T1_CONFIG_OPTION_DISABLE_HINTER if you want to generate  */
-/* a driver with no hinter. This can be useful to debug the parser */
-/*                                                                 */
-#undef  T1_CONFIG_OPTION_DISABLE_HINTER
-
-/* Define this configuration macro if you want to prevent the      */
-/* compilation of "t1afm", which is in charge of reading Type1     */
-/* AFM files into an existing face. Note that when set, the T1     */
-/* driver will be unable to produce kerning distances..            */
-/*                                                                 */
-#undef  T1_CONFIG_OPTION_NO_AFM
-#endif
-
-#endif /* T1CONFIG_H */
diff --git a/src/type1/t1load.c b/src/type1/t1load.c
index 13e3418..3c2e5c2 100644
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -1,8 +1,8 @@
+#include <ftconfig.h>
 #include <ftdebug.h>
 
 #include <t1types.h>
 #include <t1tokens.h>
-#include <t1config.h>
 #include <t1parse.h>
 
 #include <stdio.h>
diff --git a/src/type1/t1objs.h b/src/type1/t1objs.h
index 417ae53..e11a3a1 100644
--- a/src/type1/t1objs.h
+++ b/src/type1/t1objs.h
@@ -19,7 +19,8 @@
 #define T1OBJS_H
 
 #include <ftobjs.h>
-#include <t1config.h>
+#include <ftconfig.h>
+
 #include <t1errors.h>
 #include <t1types.h>
 
diff --git a/src/type1z/rules.mk b/src/type1z/rules.mk
index a73a306..b902201 100644
--- a/src/type1z/rules.mk
+++ b/src/type1z/rules.mk
@@ -49,7 +49,6 @@
 # Type1 driver headers
 #
 T1Z_DRV_H := $(T1Z_DIR_)t1errors.h  \
-             $(T1Z_DIR_)t1config.h  \
              $(T1SHARED_H)          \
              $(T1Z_DRV_SRC:%.c=%.h)
 
diff --git a/src/type1z/t1afm.c b/src/type1z/t1afm.c
index f619e28..036aa5e 100644
--- a/src/type1z/t1afm.c
+++ b/src/type1z/t1afm.c
@@ -10,12 +10,14 @@
 #include <t1types.h>
 #include <stdlib.h>  /* for qsort */
 
+#if 0
   LOCAL_FUNC
   void  T1_Done_AFM( FT_Memory memory, T1_AFM*  afm )
   {
     FREE( afm->kern_pairs );
     afm->num_pairs = 0;
   }
+#endif
 
 #undef  IS_KERN_PAIR
 #define IS_KERN_PAIR(p)  ( p[0] == 'K'  &&  p[1] == 'P' )
diff --git a/src/type1z/t1afm.h b/src/type1z/t1afm.h
index 567ed63..366c2f2 100644
--- a/src/type1z/t1afm.h
+++ b/src/type1z/t1afm.h
@@ -34,9 +34,11 @@
 FT_Error  T1_Read_AFM( FT_Face   face,
                        FT_Stream stream );
 
+#if 0
 LOCAL_DEF
 void      T1_Done_AFM( FT_Memory  memory,
                        T1_AFM*    afm );
+#endif
 
 LOCAL_DEF
 void  T1_Get_Kerning( T1_AFM*     afm,
diff --git a/src/type1z/t1config.h b/src/type1z/t1config.h
deleted file mode 100644
index cc546d0..0000000
--- a/src/type1z/t1config.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************
- *
- *  t1config.h
- *
- *    Type 1 driver configuration file
- *
- *  Copyright 1996-1998 by
- *  David Turner, Robert Wilhelm, and Werner Lemberg.
- *
- *  This file is part of the FreeType project, and may only be used,
- *  modified, and distributed under the terms of the FreeType project
- *  license, LICENSE.TXT.  By continuing to use, modify, or distribute 
- *  this file you indicate that you have read the license and
- *  understand and accept it fully.
- *
- ******************************************************************/
-
-#ifndef T1CONFIG_H
-#define T1CONFIG_H
-
-#if 0
-/* T1_MAX_STACK_DEPTH is the maximal depth of the token stack used */
-/* by the Type 1 parser (see t1load.c). A minimum of 16 is required */
-/*                                                                 */
-#define T1_MAX_STACK_DEPTH  16
-
-/* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and */
-/* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is   */
-/* required                                                        */
-#define T1_MAX_DICT_DEPTH   5
-
-/* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */
-/* calls during glyph loading                                          */
-#define T1_MAX_SUBRS_CALLS   8
-
-
-/* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity */
-#define T1_MAX_CHARSTRINGS_OPERANDS  32
-
-
-/* Define T1_CONFIG_OPTION_DISABLE_HINTER if you want to generate  */
-/* a driver with no hinter. This can be useful to debug the parser */
-/*                                                                 */
-#undef  T1_CONFIG_OPTION_DISABLE_HINTER
-
-/* Define this configuration macro if you want to prevent the      */
-/* compilation of "t1afm", which is in charge of reading Type1     */
-/* AFM files into an existing face. Note that when set, the T1     */
-/* driver will be unable to produce kerning distances..            */
-/*                                                                 */
-#undef  T1_CONFIG_OPTION_NO_AFM
-#endif
-
-#endif /* T1CONFIG_H */
diff --git a/src/type1z/t1load.c b/src/type1z/t1load.c
index 9795031..d272e4e 100644
--- a/src/type1z/t1load.c
+++ b/src/type1z/t1load.c
@@ -59,11 +59,11 @@
  *
  ******************************************************************/
 
- #include <ftdebug.h>
+#include <ftdebug.h>
+#include <ftconfig.h>
 
 #include <t1types.h>
 #include <t1errors.h>
-#include <t1config.h>
 #include <t1load.h>
 #include <stdio.h>
 
diff --git a/src/type1z/t1objs.h b/src/type1z/t1objs.h
index 417ae53..8a16863 100644
--- a/src/type1z/t1objs.h
+++ b/src/type1z/t1objs.h
@@ -19,7 +19,7 @@
 #define T1OBJS_H
 
 #include <ftobjs.h>
-#include <t1config.h>
+#include <ftconfig.h>
 #include <t1errors.h>
 #include <t1types.h>
 
diff --git a/src/type1z/t1parse.c b/src/type1z/t1parse.c
index ea86214..82b8169 100644
--- a/src/type1z/t1parse.c
+++ b/src/type1z/t1parse.c
@@ -186,6 +186,7 @@
 /*    This function does NOT release the heap's memory block. It is up   */
 /*    to the caller to clean it, or reference it in its own structures.  */
 /*                                                                       */
+#if 0
   LOCAL_FUNC
   void  T1_Done_Table( T1_Table*  table )
   {
@@ -204,7 +205,7 @@
     if (old_base != table->block)
       shift_elements( table, old_base );
   }
-
+#endif
 
   LOCAL_FUNC
   void  T1_Release_Table( T1_Table*  table )
diff --git a/src/type1z/t1parse.h b/src/type1z/t1parse.h
index 7a6644c..aee45f9 100644
--- a/src/type1z/t1parse.h
+++ b/src/type1z/t1parse.h
@@ -146,9 +146,10 @@
                           void*      object,
                           T1_Int     length );
 
-
+#if 0
   LOCAL_DEF
   void  T1_Done_Table( T1_Table*  table );
+#endif
 
   LOCAL_DEF
   void  T1_Release_Table( T1_Table*  table );
