diff -ru CVS/classpath/java/net/Inet6Address.java updated/classpath/java/net/Inet6Address.java
--- CVS/classpath/java/net/Inet6Address.java	2010-06-19 14:28:18.000000000 +0400
+++ updated/classpath/java/net/Inet6Address.java	2010-06-19 14:32:20.000000000 +0400
@@ -1,5 +1,5 @@
 /* Inet6Address.java --
-   Copyright (C) 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2006, 2010  Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
 
@@ -157,7 +157,7 @@
    */
   public boolean isLinkLocalAddress()
   {
-    return ipaddress[0] == 0xFA;
+    return ipaddress[0] == (byte) 0xFA;
   }
 
   /**
@@ -167,7 +167,7 @@
    */
   public boolean isSiteLocalAddress()
   {
-    return ipaddress[0] == 0xFB;
+    return ipaddress[0] == (byte) 0xFB;
   }
 
   /**
diff -ru CVS/classpath/java/net/URL.java updated/classpath/java/net/URL.java
--- CVS/classpath/java/net/URL.java	2010-06-19 14:31:24.000000000 +0400
+++ updated/classpath/java/net/URL.java	2010-06-19 14:31:54.000000000 +0400
@@ -1,5 +1,5 @@
 /* URL.java -- Uniform Resource Locator Class
-   Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
+   Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2010
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -474,8 +474,7 @@
             authority = context.authority;
           }
         else // Protocol NOT specified in spec. and no context available.
-          throw new MalformedURLException("Absolute URL required with null"
-                                          + " context: " + spec);
+          throw new MalformedURLException("No protocol specified: " + spec);
       }
 
     protocol = protocol.trim();
diff -ru CVS/classpath/java/net/URLClassLoader.java updated/classpath/java/net/URLClassLoader.java
--- CVS/classpath/java/net/URLClassLoader.java	2010-06-19 14:28:40.000000000 +0400
+++ updated/classpath/java/net/URLClassLoader.java	2010-06-19 14:31:00.000000000 +0400
@@ -1,5 +1,5 @@
 /* URLClassLoader.java --  ClassLoader that loads classes from one or more URLs
-   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2010
    Free Software Foundation, Inc.
 
 This file is part of GNU Classpath.
@@ -294,6 +294,14 @@
         // Create a loader for this URL.
         URLLoader loader = null;
         String file = newUrl.getFile();
+        try
+          {
+            file = gnu.java.net.protocol.file.Connection.unquote(file);
+          }
+        catch (MalformedURLException e)
+          {
+            // ignore
+          }
         String protocol = newUrl.getProtocol();
 
         // If we have a file: URL, we want to make it absolute
@@ -759,9 +767,17 @@
     if (protocol.equals("file"))
       {
         String file = url.getFile();
-
+        try
+          {
+            file = gnu.java.net.protocol.file.Connection.unquote(file);
+          }
+        catch (MalformedURLException e)
+          {
+            // ignore
+          }
+        file = file.replace('/', File.separatorChar);
         // If the file end in / it must be an directory.
-        if (file.endsWith("/") || file.endsWith(File.separator))
+        if (file.endsWith(File.separator))
           {
             // Grant permission to read everything in that directory and
             // all subdirectories.
