+--- etswitch-0.1.8/src/conf.c~ 2005-11-03 17:56:30.000000000 +0100
++++ etswitch-0.1.8/src/conf.c 2006-03-09 20:48:40.865172500 +0100
+@@ -95,7 +95,9 @@
+
+ file = calloc(max,1);
+ bin = calloc(78,1);
+- home = (char *)getenv("HOME");
++ home = getenv("HOME_ETC");
++ if ( home == NULL)
++ home = (char *)getenv("HOME");
+ snprintf((char *)file, (size_t)max, "%s/.etswitch/etswitch.rc", (char *)home);
+ if (!(fp = open((char *)file,O_RDONLY))){
+ fprintf(stderr, "fopen read failed: %s, at line: %d\n", strerror(errno),__LINE__);
+@@ -121,6 +123,10 @@
+ int r;
+ int special;
+
++ char * home = getenv("HOME_ETC");
++ if (home == NULL)
++ home = getenv("HOME");
++
+ dir = calloc(PATH_MAX+1,1);
+ /* home = calloc(PATH_MAX+1,1); */
+ file = calloc(PATH_MAX+NAME_MAX+1,1);
+@@ -130,7 +136,7 @@
+ exit(EXIT_FAILURE);
+ }
+ /* change to get pw*/
+- snprintf((char *)dir, PATH_MAX, "%s/.etswitch", getenv("HOME"));
++ snprintf((char *)dir, PATH_MAX, "%s/.etswitch", home);
+ snprintf((char *)file, PATH_MAX+NAME_MAX, "%s/etswitch.rc", dir);
+ if (stat((char *)dir, &dir_stat)!=-1){
+ if (!S_ISDIR (dir_stat.st_mode)){ /* the name is a directory, and it exists */