diff -urdN linux-2.4.4.orig/Documentation/Configure.help linux/Documentation/Configure.help
--- linux-2.4.4.orig/Documentation/Configure.help	Fri Apr 20 16:23:12 2001
+++ linux/Documentation/Configure.help	Tue May  1 16:26:10 2001
@@ -12174,7 +12174,7 @@
   case insensitive, and case in names is preserved. Say Y. You can
   disable it at mount time with the -N os2 parameter of ncpmount.
 
-Lowercase DOS filenames on LONG namespace volume
+Lowercase DOS filenames
 CONFIG_NCPFS_SMALLDOS
   If you say Y here, every filename on a NetWare server volume using
   the OS2/LONG namespace and created under DOS or on a volume using
@@ -12192,25 +12192,7 @@
   effects by saying Y to "Allow using of Native Language Support"
   below.
 
-Allow mounting of volume subdirectories
-CONFIG_NCPFS_MOUNT_SUBDIR
-  Allows you to mount not only whole servers or whole volumes, but
-  also subdirectories from a volume. It can be used to reexport data
-  and so on. There is no reason to say N, so Y is recommended unless
-  you count every byte.
-
-  To utilize this feature you must use ncpfs-2.0.12 or newer.
-
-NDS authentication support
-CONFIG_NCPFS_NDS_DOMAINS
-  This allows storing NDS private keys in kernel space where they
-  can be used to authenticate another server as interserver NDS
-  accesses need it. You must use ncpfs-2.0.12.1 or newer to utilize
-  this feature. Say Y if you are using NDS connections to NetWare
-  servers. Do not say Y if security is primary for you because root
-  can read your session key (from /proc/kcore).
-
-Allow using of Native Language Support
+Use Native Language Support
 CONFIG_NCPFS_NLS
   Allows you to use codepages and I/O charsets for file name
   translation between the server file system and input/output. This
@@ -12218,6 +12200,16 @@
   systems, e.g. Windows 95. See also NLS for more Information.
 
   To select codepages and I/O charsets use ncpfs-2.2.0.13 or newer.
+
+Default NLS Codepage
+CONFIG_NCPFS_NLS_CP
+  This setting allows you to specify a default value for which
+  codepage the server uses. If this field is left blank no
+  translations will be done by default. The local codepage/charset
+  default to CONFIG_NLS_DEFAULT.
+
+  The nls settings can be changed at mount time, if your ncpmount
+  supports that, using the codepage and iocharset parameters.
 
 Symbolic links and mode permission bits
 CONFIG_NCPFS_EXTRAS
diff -urdN linux-2.4.4.orig/fs/ncpfs/Config.in linux/fs/ncpfs/Config.in
--- linux-2.4.4.orig/fs/ncpfs/Config.in	Mon Dec 11 20:59:28 2000
+++ linux/fs/ncpfs/Config.in	Tue May  1 15:55:22 2001
@@ -8,4 +8,7 @@
 dep_mbool '  Use LONG (OS/2) namespace if available' CONFIG_NCPFS_OS2_NS $CONFIG_NCP_FS
 dep_mbool '  Lowercase DOS filenames' CONFIG_NCPFS_SMALLDOS $CONFIG_NCP_FS
 dep_mbool '  Use Native Language Support' CONFIG_NCPFS_NLS $CONFIG_NCP_FS
+if [ "$CONFIG_NCPFS_NLS" = "y" ]; then
+   string '   Default NLS Codepage' CONFIG_NCPFS_NLS_CP "cp437"
+fi
 dep_mbool '  Enable symbolic links and execute flags' CONFIG_NCPFS_EXTRAS $CONFIG_NCP_FS
diff -urdN linux-2.4.4.orig/fs/ncpfs/inode.c linux/fs/ncpfs/inode.c
--- linux-2.4.4.orig/fs/ncpfs/inode.c	Tue Apr 17 23:16:39 2001
+++ linux/fs/ncpfs/inode.c	Sat Apr 28 14:14:09 2001
@@ -4,7 +4,7 @@
  *  Copyright (C) 1995, 1996 by Volker Lendecke
  *  Modified for big endian by J.F. Chadima and David S. Miller
  *  Modified 1997 Peter Waltenberg, Bill Hawes, David Woodhouse for 2.1 dcache
- *  Modified 1998 Wolfram Pienkoss for NLS
+ *  Modified 1998-2001 Wolfram Pienkoss for NLS
  *
  */
 
@@ -369,7 +369,7 @@
 
 #ifdef CONFIG_NCPFS_NLS
 	/* load the default NLS charsets */
-	server->nls_vol = load_nls_default();
+	server->nls_vol = ncp_load_nls_default_cp();
 	server->nls_io = load_nls_default();
 #endif /* CONFIG_NCPFS_NLS */
 
diff -urdN linux-2.4.4.orig/fs/ncpfs/ioctl.c linux/fs/ncpfs/ioctl.c
--- linux-2.4.4.orig/fs/ncpfs/ioctl.c	Mon Dec 11 20:59:28 2000
+++ linux/fs/ncpfs/ioctl.c	Sat Apr 28 14:14:23 2001
@@ -3,7 +3,7 @@
  *
  *  Copyright (C) 1995, 1996 by Volker Lendecke
  *  Modified 1997 Peter Waltenberg, Bill Hawes, David Woodhouse for 2.1 dcache
- *  Modified 1998, 1999 Wolfram Pienkoss for NLS
+ *  Modified 1998-2001 Wolfram Pienkoss for NLS
  *
  */
 
@@ -526,7 +526,7 @@
 			user.codepage[NCP_IOCSNAME_LEN] = 0;
 			if (!user.codepage[0] ||
 					!strcmp(user.codepage, "default"))
-				codepage = load_nls_default();
+				codepage = ncp_load_nls_default_cp();
 			else {
 				codepage = load_nls(user.codepage);
 				if (!codepage) {
diff -urdN linux-2.4.4.orig/fs/ncpfs/ncplib_kernel.c linux/fs/ncpfs/ncplib_kernel.c
--- linux-2.4.4.orig/fs/ncpfs/ncplib_kernel.c	Tue Nov 14 21:16:33 2000
+++ linux/fs/ncpfs/ncplib_kernel.c	Tue May  1 16:30:39 2001
@@ -4,7 +4,7 @@
  *  Copyright (C) 1995, 1996 by Volker Lendecke
  *  Modified for big endian by J.F. Chadima and David S. Miller
  *  Modified 1997 Peter Waltenberg, Bill Hawes, David Woodhouse for 2.1 dcache
- *  Modified 1999 Wolfram Pienkoss for NLS
+ *  Modified 1999-2001 Wolfram Pienkoss for NLS
  *
  */
 
@@ -893,6 +893,18 @@
 /* This are the NLS conversion routines with inspirations and code parts
  * from the vfat file system and hints from Petr Vandrovec.
  */
+
+struct
+nls_table *ncp_load_nls_default_cp(void)
+{
+	struct nls_table *default_nls;
+
+	default_nls = load_nls(NCPFS_NLS_CP);
+	if (default_nls != NULL)
+		return default_nls;
+	else
+		return load_nls_default();
+}
 
 inline unsigned char
 ncp__tolower(struct nls_table *t, unsigned char c)
diff -urdN linux-2.4.4.orig/fs/ncpfs/ncplib_kernel.h linux/fs/ncpfs/ncplib_kernel.h
--- linux-2.4.4.orig/fs/ncpfs/ncplib_kernel.h	Sat Apr 28 09:53:23 2001
+++ linux/fs/ncpfs/ncplib_kernel.h	Tue May  1 16:32:09 2001
@@ -4,7 +4,7 @@
  *  Copyright (C) 1995, 1996 by Volker Lendecke
  *  Modified for big endian by J.F. Chadima and David S. Miller
  *  Modified 1997 Peter Waltenberg, Bill Hawes, David Woodhouse for 2.1 dcache
- *  Modified 1998, 1999 Wolfram Pienkoss for NLS
+ *  Modified 1998-2001 Wolfram Pienkoss for NLS
  *  Modified 1999 Wolfram Pienkoss for directory caching
  *
  */
@@ -101,6 +101,14 @@
 			__u8, __u8, __u32);
 
 #ifdef CONFIG_NCPFS_NLS
+
+#ifdef CONFIG_NCPFS_NLS_CP
+#define NCPFS_NLS_CP CONFIG_NCPFS_NLS_CP
+#else
+#define NCPFS_NLS_CP ""
+#endif
+
+struct nls_table *ncp_load_nls_default_cp(void);
 
 unsigned char ncp__tolower(struct nls_table *, unsigned char);
 unsigned char ncp__toupper(struct nls_table *, unsigned char);

