--- Net/FTP.pm.dist	Wed Apr 16 20:29:31 1997
+++ Net/FTP.pm	Wed Apr 16 20:41:28 1997
@@ -191,7 +191,8 @@
      ($ruser,$pass,$acct) = $rc->lpa()
 	if ($rc);
 
-     $pass = "-" . (getpwuid($>))[0] . "@" 
+     $pass = "-" . ($^O =~ /mswin32/i ? $ENV{'USERNAME'} :
+    					(getpwuid($>))[0]) . "@" 
         if (!defined $pass && $ruser =~ /^anonymous/o);
     }
 
@@ -217,7 +218,7 @@
   {
    require Net::Netrc;
 
-   $auth ||= (getpwuid($>))[0];
+   $auth ||= ($^O =~ /mswin32/i ? $ENV{'USERNAME'} : (getpwuid($>))[0]);
 
    my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_firewall'}, $auth)
         || Net::Netrc->lookup(${*$ftp}{'net_ftp_firewall'});
--- Net/Netrc.pm.dist	Wed Apr 16 20:29:31 1997
+++ Net/Netrc.pm	Wed Apr 16 20:44:42 1997
@@ -20,7 +20,8 @@
  my $host = shift;
 
  # Some OS's don't have `getpwuid', so we default to $ENV{HOME}
- my $home = eval { (getpwuid($>))[7] } || $ENV{HOME};
+ my $home = ($^O =~ /mswin32/i ? $ENV{HOME} :
+ 				 (eval { (getpwuid($>))[7] } || $ENV{HOME}));
  my $file = $home . "/.netrc";
 
  my($login,$pass,$acct) = (undef,undef,undef);
--- Net/POP3.pm.dist	Wed Apr 16 20:29:31 1997
+++ Net/POP3.pm	Wed Apr 16 20:46:04 1997
@@ -71,7 +71,7 @@
   {
    require Net::Netrc;
 
-   $user ||= (getpwuid($>))[0];
+   $user ||= ($^O =~ /mswin32/i ? $ENV{USERNAME} : (getpwuid($>))[0]);
 
    my $m = Net::Netrc->lookup(${*$me}{'net_pop3_host'},$user);
 
--- Net/Domain.pm.dist	Sun Jun 22 16:44:24 1997
+++ Net/Domain.pm	Sun Jun 22 18:05:24 1997
@@ -28,8 +28,14 @@
     return $host
     	if(defined $host);
 
+    ($^O eq 'MSWin32'
+     && do {
+	require Sys::Hostname;
+	$host = Sys::Hostname::hostname();
+    })
+
     # syscall is preferred since it avoids tainting problems
-    eval {
+    || eval {
     	my $tmp = "\0" x 256; ## preload scalar
     	eval {
     	    package main;
