diff -Naur LinNeighborhood-0.6.5.orig/src/smbmount.c LinNeighborhood-0.6.5/src/smbmount.c
--- LinNeighborhood-0.6.5.orig/src/smbmount.c	Sun Jun  9 09:58:43 2002
+++ LinNeighborhood-0.6.5/src/smbmount.c	Fri Aug 13 15:02:25 2004
@@ -390,10 +390,16 @@
          escape_str(smbuser,&strlist),escape_str(smbpasswd,&strlist));
         break;
        case SMBMOUNT_206:
-        sprintf(commandstr,"%s %s %s -o username=%s%%%s,fmask=%d,dmask=%d,uid=%d,gid=%d,ip=%s,debug=0%s",
+        sprintf(commandstr,"%s %s %s -o username=%s%%%s,fmask=%d,dmask=%d,uid=%d,gid=%d,debug=0%s",
          escape_str(pref_get_smbmount_exe(),&strlist),escape_str(servicename,&strlist),escape_str(mount_point,&strlist),
          escape_str(smbuser,&strlist),escape_str(smbpasswd,&strlist),
-         filemode,dirmode,uid,gid,ipaddr,opt_group);
+         filemode,dirmode,uid,gid,opt_group);
+
+	if (ipaddr && *ipaddr) {
+		string_ncat(commandstr, ",ip=", MAXMNTCOMMANDL);
+		string_ncat(commandstr, ipaddr, MAXMNTCOMMANDL);
+		}
+
          if ( (port >= 0) && (port < 65536) )
          {
           sprintf(commandstr, "%s,port=%d", commandstr, port);
@@ -485,8 +491,14 @@
       {
         argv[++argnr]="-o";
         argv[++argnr]=commandstr;
-        sprintf(commandstr,"username=%s%%%s,fmask=%d,dmask=%d,uid=%d,gid=%d,ip=%s,debug=0",
-           smbuser,smbpasswd,filemode,dirmode,uid,gid,ipaddr);
+        sprintf(commandstr,"username=%s%%%s,fmask=%d,dmask=%d,uid=%d,gid=%d,debug=0",
+           smbuser,smbpasswd,filemode,dirmode,uid,gid);
+
+	if (ipaddr && *ipaddr) {
+		string_ncat(commandstr, ",ip=", MAXMNTCOMMANDL);
+		string_ncat(commandstr, ipaddr, MAXMNTCOMMANDL);
+		}
+
         if (*group_name)
         {
           strcat(commandstr,",workgroup=");
@@ -573,9 +585,15 @@
           pref_get_smbmount_exe(),servicename,mount_point,ipaddr,opt_group,smbuser,dummysmbpasswd);
         break;
       case SMBMOUNT_206:
-        sprintf(commandstr,"%s %s %s -o username=%s%%%s,fmask=%d,dmask=%d,uid=%d,gid=%d,ip=%s,debug=0%s",
+        sprintf(commandstr,"%s %s %s -o username=%s%%%s,fmask=%d,dmask=%d,uid=%d,gid=%d,debug=0%s",
          pref_get_smbmount_exe(),servicename,mount_point,smbuser,dummysmbpasswd,
-         filemode,dirmode,uid,gid,ipaddr,opt_group);
+         filemode,dirmode,uid,gid,opt_group);
+
+	if (ipaddr && *ipaddr) {
+		string_ncat(commandstr, ",ip=", MAXMNTCOMMANDL);
+		string_ncat(commandstr, ipaddr, MAXMNTCOMMANDL);
+		}
+
         if ( (port >= 0) && (port < 65536) )
         {
           string_ncat(commandstr, ",port=", MAXMNTCOMMANDL);
@@ -621,8 +639,14 @@
         sprintf(userpasswd,"-U%s%%%s",smbuser,dummysmbpasswd);
       else
       {
-       sprintf(commandstr,"username=%s%%%s,fmask=%d,dmask=%d,uid=%d,gid=%d,ip=%s,debug=0",
-          smbuser,dummysmbpasswd,filemode,dirmode,uid,gid,ipaddr);
+       sprintf(commandstr,"username=%s%%%s,fmask=%d,dmask=%d,uid=%d,gid=%d,debug=0",
+          smbuser,dummysmbpasswd,filemode,dirmode,uid,gid);
+
+	if (ipaddr && *ipaddr) {
+		string_ncat(commandstr, ",ip=", MAXMNTCOMMANDL);
+		string_ncat(commandstr, ipaddr, MAXMNTCOMMANDL);
+		}
+
        if (*group_name){
          strcat(commandstr,",workgroup=");
          strcat(commandstr,group_name);
