diff -pu2r ash-20010827-1/miscbltin.c ash-20010827-1.deo/miscbltin.c
--- ash-20010827-1/miscbltin.c	Tue Apr 24 00:38:31 2001
+++ ash-20010827-1.deo/miscbltin.c	Fri Oct 26 16:38:37 2001
@@ -77,6 +77,6 @@ extern char **argptr;		/* argument list 
 
 /*
- * The read builtin.  The -e option causes backslashes to escape the
- * following character.
+ * The read builtin.  The -r option causes backslashes to be treated like
+ * ordinary characters.
  *
  * This uses unbuffered input, which may be avoidable in some cases.
@@ -91,5 +91,5 @@ readcmd(argc, argv)
 	int backslash;
 	char c;
-	int eflag;
+	int rflag;
 	char *prompt;
 	char *ifs;
@@ -109,5 +109,5 @@ readcmd(argc, argv)
 #endif
 
-	eflag = 0;
+	rflag = 0;
 	prompt = NULL;
 	tv.tv_sec = -1;
@@ -116,5 +116,5 @@ readcmd(argc, argv)
 	nextopt("");
 #else
-	while ((i = nextopt("ep:t:")) != '\0') {
+	while ((i = nextopt("erp:t:")) != '\0') {
 		switch(i) {
 		case 'p':
@@ -122,5 +122,7 @@ readcmd(argc, argv)
 			break;
 		case 'e':
-			eflag = 1;
+			break;
+		case 'r':
+			rflag = 1;
 			break;
 		case 't':
@@ -198,5 +200,4 @@ readcmd(argc, argv)
 		if (c == '\0')
 			continue;
-#ifndef SMALL
 		if (backslash) {
 			backslash = 0;
@@ -205,9 +206,8 @@ readcmd(argc, argv)
 			continue;
 		}
-		if (eflag && c == '\\') {
+		if (!rflag && c == '\\') {
 			backslash++;
 			continue;
 		}
-#endif
 		if (c == '\n')
 			break;
