--- Users/Users.pm.orig	Thu Oct  5 09:27:21 2006
+++ Users/Users.pm	Sun Apr 22 23:05:41 2007
@@ -458,7 +458,7 @@
 	
   if ($Utils::Backend::tool{"system"} eq "FreeBSD")
   {
-    $command = "$cmd_pw userdel -n \'" . $$user[$LOGIN] . "\' ";
+    $command = "$cmd_pw userdel -n \'" . $$user[$LOGIN] . "\' -r ";
   }
   else
   {
@@ -538,10 +538,10 @@
   {
     my $pwdpipe;
     my $home;
+    my $user;
 
-    # FreeBSD doesn't create the home directory
     $home = $$user[$HOME];
-    &Utils::File::run ("$tool_mkdir -p $home");
+    $user = $$user[$LOGIN];
 
     $command = "$cmd_pw useradd " .
         " -n \'" . $$user[$LOGIN] . "\'" .
@@ -549,11 +549,12 @@
         " -d \'" . $$user[$HOME]  . "\'" .
         " -g \'" . $$user[$GID]   . "\'" .
         " -s \'" . $$user[$SHELL] . "\'" .
-        " -H 0"; # pw(8) reads password from STDIN
+        " -m -h 0"; # pw(8) reads password from STDIN
 
     $pwdpipe = &Utils::File::run_pipe_write ($command);
     print $pwdpipe $$user[$PASSWD];
     &Utils::File::close_file ($pwdpipe);
+    &Utils::File::run ("chown -R $user $home");
   }
   elsif ($Utils::Backend::tool{"system"} eq "SunOS")
   {
@@ -629,7 +630,7 @@
         " -d \'" . $$new_user[$HOME]  . "\'" .
         " -g \'" . $$new_user[$GID]   . "\'" .
         " -s \'" . $$new_user[$SHELL] . "\'" .
-        " -H 0"; # pw(8) reads password from STDIN
+        " -h 0"; # pw(8) reads password from STDIN
 
     $pwdpipe = &Utils::File::run_pipe_write ($command);
     print $pwdpipe $$new_user[$PASSWD];


syntax highlighted by Code2HTML, v. 0.9.1