--- /dev/null
+diff -Nur dc_gui-0.57.orig/src/callbacks.c dc_gui-0.57.chng/src/callbacks.c
+--- dc_gui-0.57.orig/src/callbacks.c Sat May 25 10:51:21 2002
++++ dc_gui-0.57.chng/src/callbacks.c Mon Jun 3 10:57:40 2002
+@@ -2894,14 +2894,21 @@
+ on_clear_recent_list_button_clicked (GtkButton *button,
+ gpointer user_data)
+ {
+- GString *s;
+ char *path;
+
+- s=g_string_new(NULL);
+- path=getenv("HOME");
+- g_string_sprintf(s,"%s/.dctc/recent",(path!=NULL)?path:".");
+- unlink(s->str);
+- g_string_free(s,TRUE);
++ path = getenv("HOME");
++ if (!path)
++ path = ".";
++
++ if(getenv("CONFIG_DIR"))
++ path = g_strconcat(path, "/", getenv("CONFIG_DIR"),
++ "/dctc/recent", NULL);
++ else
++ path = g_strconcat(path, "/.dctc/recent", NULL);
++
++ unlink(path);
++ g_free(path);
++
+ fill_recent_hub_clist();
+ }
+
+diff -Nur dc_gui-0.57.orig/src/init_fnc.c dc_gui-0.57.chng/src/init_fnc.c
+--- dc_gui-0.57.orig/src/init_fnc.c Sat May 25 11:01:34 2002
++++ dc_gui-0.57.chng/src/init_fnc.c Mon Jun 3 11:01:10 2002
+@@ -341,19 +341,25 @@
+ if(rhcw)
+ {
+ FILE *f;
+- GString *s;
+ char *path;
+
+ gtk_clist_freeze(GTK_CLIST(rhcw));
+ gtk_clist_clear(GTK_CLIST(rhcw));
+ gtk_clist_set_auto_sort(GTK_CLIST(rhcw),TRUE);
+
+- s=g_string_new(NULL);
+- path=getenv("HOME");
+- g_string_sprintf(s,"%s/.dctc/recent",(path!=NULL)?path:".");
++ path = getenv("HOME");
++ if (!path)
++ path = ".";
++
++ if(getenv("CONFIG_DIR"))
++ path = g_strconcat(path, "/", getenv("CONFIG_DIR"),
++ "/dctc/recent", NULL);
++ else
++ path = g_strconcat(path, "/.dctc/recent", NULL);
+
+ /* we read the file ~/.dctc/recent */
+- f=fopen(s->str,"rb");
++ f=fopen(path, "rb");
++ g_free(path);
+ if(f!=NULL)
+ {
+ char *ent[4];
+@@ -412,7 +418,6 @@
+
+ fclose(f);
+ }
+- g_string_free(s,TRUE);
+ gtk_clist_sort(GTK_CLIST(rhcw));
+ gtk_clist_thaw(GTK_CLIST(rhcw));
+ }
+diff -Nur dc_gui-0.57.orig/src/main.c dc_gui-0.57.chng/src/main.c
+--- dc_gui-0.57.orig/src/main.c Sat May 18 15:11:19 2002
++++ dc_gui-0.57.chng/src/main.c Mon Jun 3 11:02:54 2002
+@@ -265,8 +265,17 @@
+ #endif
+
+ path=getenv("HOME");
+- dctc_main_dir=g_string_new(NULL);
+- g_string_sprintf(dctc_main_dir,"%s/.dctc",(path!=NULL)?path:".");
++ if (!path)
++ path = ".";
++
++ if(getenv("CONFIG_DIR"))
++ path = g_strconcat(path, "/", getenv("CONFIG_DIR"),
++ "/dctc", NULL);
++ else
++ path = g_strconcat(path, "/.dctc", NULL);
++
++ dctc_main_dir=g_string_new(path);
++ g_free(path);
+ if(access(dctc_main_dir->str,R_OK|W_OK|X_OK))
+ {
+ if(errno==ENOENT)