diff --git a/debuild/userconfig.patch b/debuild/userconfig.patch
index b5ec5ff5ea6c3156942c40472251bd735ba9b088..0e41714e92fc6c76a24db2856d846a4740fcd1ca 100644
--- a/debuild/userconfig.patch
+++ b/debuild/userconfig.patch
@@ -1,31 +1,13 @@
 diff --git a/pd/src/s_file.c b/pd/src/s_file.c
-index 1c18096f..576e4c36 100644
+index 32f54c31..304524d5 100644
 --- a/pd/src/s_file.c
 +++ b/pd/src/s_file.c
-@@ -62,7 +62,7 @@ static void sys_initloadpreferences( void)
-              sys_libdir->s_name);
+@@ -46,7 +46,7 @@ void sys_doflags( void);
  
-     if (homedir)
--        snprintf(user_prefs_file, FILENAME_MAX, "%s/.pd-l2ork/user.settings", homedir);
-+        snprintf(user_prefs_file, FILENAME_MAX, "%s/.purr-data/user.settings", homedir);
-     if (stat(user_prefs_file, &statbuf) == 0) 
-         strncpy(filenamebuf, user_prefs_file, FILENAME_MAX);
-     else if (stat(default_prefs_file, &statbuf) == 0)
-@@ -143,7 +143,7 @@ static void sys_initsavepreferences( void)
+ #ifdef UNIX
+ 
+-#define USER_CONFIG_DIR ".pd-l2ork"
++#define USER_CONFIG_DIR ".purr-data"
+ 
+ static char *sys_prefbuf;
  
-     if (!homedir)
-         return;
--    snprintf(filenamebuf, FILENAME_MAX, "%s/.pd-l2ork", homedir);
-+    snprintf(filenamebuf, FILENAME_MAX, "%s/.purr-data", homedir);
-     filenamebuf[FILENAME_MAX-1] = 0;
-     if (stat(filenamebuf, &statbuf) || !S_ISDIR(statbuf.st_mode)) {
-       // user config dir doesn't exist yet, try to create it
-@@ -152,7 +152,7 @@ static void sys_initsavepreferences( void)
- 	return;
-       }
-     }
--    snprintf(filenamebuf, FILENAME_MAX, "%s/.pd-l2ork/user.settings", homedir);
-+    snprintf(filenamebuf, FILENAME_MAX, "%s/.purr-data/user.settings", homedir);
-     filenamebuf[FILENAME_MAX-1] = 0;
-     if ((sys_prefsavefp = fopen(filenamebuf, "w")) == NULL)
-     {
diff --git a/pd/src/s_file.c b/pd/src/s_file.c
index 32f54c312d8d21cadd790b2ecd1abb3926181c3c..8bf515e747b4018339df4a577d1f351073af0505 100644
--- a/pd/src/s_file.c
+++ b/pd/src/s_file.c
@@ -646,8 +646,10 @@ char *sys_recent_files[MAX_RECENT_FILES];
 
 static int fexists(const char *s)
 {
-  struct stat statbuf;
-  return stat(s, &statbuf) == 0;
+  FILE *fp = sys_fopen(s, "r");
+  if (!fp) return 0;
+  sys_fclose(fp);
+  return 1;
 }
 
 void sys_add_recent_file(const char *s)