diff -pru dillo/src/IO/Url.c dillo.new/src/IO/Url.c
--- dillo/src/IO/Url.c	Sat Nov 11 01:54:45 2000
+++ dillo.new/src/IO/Url.c	Mon Nov 27 23:43:33 2000
@@ -252,7 +252,10 @@ char *a_Url_squeeze(char *str)
             str[ni++] = s[i];
          if ( nc && ni )
             --ni;
+	 nc = ni;
          while ( ni && str[--ni] != '/');
+	 if (!ni || (!strncmp(str, "http://",7) && ni == 6))
+           ni = nc+1;   /* if we couldn't find a parent direcory, restore value */
          s = p = p + 3;
       } else if ( p[2] == '/' || !p[2] ) {  /* "/./" or "/." */
          nc = p - s;
@@ -264,6 +267,8 @@ char *a_Url_squeeze(char *str)
          p += 2;
       }
    }
+
+   if (ni && str[ni-1] == '/') ni--;
    /* Append the rest of 'str' */
    if ( ni == 0 && !*s ) str[ni++] = '/';
    while ( (str[ni++] = *s++) );
