diff -Naur nano-1.2.5.orig/rcfile.c nano-1.2.5/rcfile.c
--- nano-1.2.5.orig/rcfile.c	2004-06-26 00:12:19.000000000 +0000
+++ nano-1.2.5/rcfile.c	2006-01-25 08:25:03.926875000 +0000
@@ -624,6 +624,7 @@
     FILE *rcstream;
     const struct passwd *userage;
     uid_t euid = geteuid();
+    char *dotenv = getenv("DOTDIR");
     char *homenv = getenv("HOME");
 
 #ifdef SYSCONFDIR
@@ -640,8 +641,12 @@
 
     lineno = 0;
 
-    /* Rely on $HOME, fall back on getpwuid() */
-    if (homenv != NULL) {
+    /* Rely on $DOTDIR or $HOME, fall back on getpwuid() */
+    if (dotenv != NULL) { 
+	nanorc = charealloc(nanorc, strlen(dotenv) + 10);
+	sprintf(nanorc, "%s/.nanorc", dotenv);
+    }
+    else if (homenv != NULL) {
 	nanorc = charealloc(nanorc, strlen(homenv) + 10);
 	sprintf(nanorc, "%s/.nanorc", homenv);
     } else {
