diff --git a/src/ChangeLog b/src/ChangeLog
index d7d60c69..99709be5 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,18 @@
+2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* netrc.c (parse_netrc): Don't trim the line endings explicitly;
+	they will be handled as whitespace.
+	(parse_netrc): Correctly handle lines that end with whitespace.
+
+2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
+
+	* retr.c (retrieve_url): New variable global_download_count used
+	to identify first retrieval.
+
+	* ftp.c (getftp): Ditto.
+
+	* http.c (gethttp): Rewind opt.dfp only on first retrieval.
+
 2001-04-02  Hrvoje Niksic  <hniksic@arsdigita.com>
 
 	* init.c (cmd_address): Heap-allocate the address that gets stored
diff --git a/src/netrc.c b/src/netrc.c
index 7f7601a2..9777e9e2 100644
--- a/src/netrc.c
+++ b/src/netrc.c
@@ -269,13 +269,6 @@ parse_netrc (const char *path)
   /* While there are lines in the file...  */
   while ((line = read_whole_line (fp)))
     {
-      /* Do away with line separators. */
-      int len = strlen (line);
-      if (len && line[len - 1] == '\n')
-	line[--len] = '\0';
-      if (len && line[len - 1] == '\r')
-	line[--len] = '\0';
-
       ln ++;
 
       /* Parse the line.  */
@@ -294,8 +287,9 @@ parse_netrc (const char *path)
 	  while (*p && ISSPACE (*p))
 	    p ++;
 
-	  /* Discard end-of-line comments.  */
-	  if (*p == '#')
+	  /* Discard end-of-line comments; also, stop processing if
+	     the above `while' merely skipped trailing whitespace.  */
+	  if (*p == '#' || !*p)
 	    break;
 
 	  /* If the token starts with quotation mark, note this fact,