Index: trunk/src/main.c =================================================================== --- trunk/src/main.c (revision 1232) +++ trunk/src/main.c (revision 1233) @@ -1591,6 +1591,8 @@ free(fontfile_paths); fontfile_paths = NULL; } + + uninit_strflags_buf(); } int main(int argc, char *argv[]) Index: trunk/src/strflags.c =================================================================== --- trunk/src/strflags.c (revision 1232) +++ trunk/src/strflags.c (revision 1233) @@ -167,6 +167,17 @@ #undef B } +void uninit_strflags_buf(void) +{ + int n; + for(n = 0; n < 10; n++) { + if (buffers[n].ptr != NULL) { + free(buffers[n].ptr); + buffers[n].ptr = NULL; + } + } +} + /* * This set of routines manages a list of layer-specific flags. * Callers should call grow_layer_list(0) to reset the list, and Index: trunk/src/strflags.h =================================================================== --- trunk/src/strflags.h (revision 1232) +++ trunk/src/strflags.h (revision 1233) @@ -46,4 +46,6 @@ FlagType string_to_pcbflags(const char *flagstring, int (*error) (const char *msg)); char *pcbflags_to_string(FlagType flags); +void uninit_strflags_buf(void); + #endif