diff --git a/jcifs/jcifs/smb/SmbFile.java b/jcifs/jcifs/smb/SmbFile.java
index 22391e9..00a1da3 100644
--- a/jcifs/jcifs/smb/SmbFile.java
+++ b/jcifs/jcifs/smb/SmbFile.java
@@ -268,6 +268,7 @@ import java.util.Date;
 
 public class SmbFile extends URLConnection implements SmbConstants {
 
+    static final String RFC_2396_DISTINGUISHING_PREFIX = "URL:";
     static final int O_RDONLY = 0x01;
     static final int O_WRONLY = 0x02;
     static final int O_RDWR   = 0x03;
@@ -465,7 +466,7 @@ public class SmbFile extends URLConnection implements SmbConstants {
                 throws MalformedURLException, UnknownHostException {
         this( context.isWorkgroup0() ?
             new URL( null, "smb://" + name, Handler.SMB_HANDLER ) :
-            new URL( context.url, name, Handler.SMB_HANDLER ), context.auth );
+            new URL( context.url, RFC_2396_DISTINGUISHING_PREFIX+name, Handler.SMB_HANDLER ), context.auth );
     }
 
 /**
@@ -483,7 +484,7 @@ public class SmbFile extends URLConnection implements SmbConstants {
 
     public SmbFile( String context, String name ) throws MalformedURLException {
         this( new URL( new URL( null, context, Handler.SMB_HANDLER ),
-                name, Handler.SMB_HANDLER ));
+               RFC_2396_DISTINGUISHING_PREFIX+name, Handler.SMB_HANDLER ));
     }
 
 /**
@@ -536,7 +537,7 @@ public class SmbFile extends URLConnection implements SmbConstants {
  */
     public SmbFile( String context, String name, NtlmPasswordAuthentication auth )
                     throws MalformedURLException {
-        this( new URL( new URL( null, context, Handler.SMB_HANDLER ), name, Handler.SMB_HANDLER ), auth );
+        this( new URL( new URL( null, context, Handler.SMB_HANDLER ), RFC_2396_DISTINGUISHING_PREFIX+name, Handler.SMB_HANDLER ), auth );
     }
 /**
  * Constructs an SmbFile representing a resource on an SMB network such
@@ -559,7 +560,7 @@ public class SmbFile extends URLConnection implements SmbConstants {
  */
     public SmbFile( String context, String name, NtlmPasswordAuthentication auth, int shareAccess )
                     throws MalformedURLException {
-        this( new URL( new URL( null, context, Handler.SMB_HANDLER ), name, Handler.SMB_HANDLER ), auth );
+        this( new URL( new URL( null, context, Handler.SMB_HANDLER ), RFC_2396_DISTINGUISHING_PREFIX + name, Handler.SMB_HANDLER ), auth );
         if ((shareAccess & ~(FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE)) != 0) {
             throw new RuntimeException( "Illegal shareAccess parameter" );
         }
@@ -587,7 +588,7 @@ public class SmbFile extends URLConnection implements SmbConstants {
                     throws MalformedURLException, UnknownHostException {
         this( context.isWorkgroup0() ?
             new URL( null, "smb://" + name, Handler.SMB_HANDLER ) :
-            new URL( context.url, name, Handler.SMB_HANDLER ), context.auth );
+            new URL( context.url, RFC_2396_DISTINGUISHING_PREFIX + name, Handler.SMB_HANDLER ), context.auth );
         if ((shareAccess & ~(FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE)) != 0) {
             throw new RuntimeException( "Illegal shareAccess parameter" );
         }
@@ -621,7 +622,7 @@ public class SmbFile extends URLConnection implements SmbConstants {
                 throws MalformedURLException, UnknownHostException {
         this( context.isWorkgroup0() ?
             new URL( null, "smb://" + name + "/", Handler.SMB_HANDLER ) :
-            new URL( context.url, name + (( attributes & ATTR_DIRECTORY ) > 0 ? "/" : "" )));
+            new URL( context.url, RFC_2396_DISTINGUISHING_PREFIX +name + (( attributes & ATTR_DIRECTORY ) > 0 ? "/" : "" )));
 
         /* why was this removed before? DFS? copyTo? Am I going around in circles? */
         auth = context.auth;
