--- lib/CPAN/FirstTime.pm.orig	2006-02-06 07:50:13.000000000 -0500
+++ lib/CPAN/FirstTime.pm	2006-02-06 07:50:28.000000000 -0500
@@ -292,7 +292,7 @@ by ENTER.
     my(@path) = split /$Config{'path_sep'}/, $ENV{'PATH'};
     local $^W = $old_warn;
     my $progname;
-    for $progname (qw/gzip tar unzip make lynx wget ncftpget ncftp ftp gpg/){
+    for $progname (qw/gzip tar unzip make links lynx wget ncftpget ncftp ftp gpg/){
       if ($^O eq 'MacOS') {
           $CPAN::Config->{$progname} = 'not_here';
           next;
--- lib/CPAN.pm.orig	2006-02-06 07:54:43.000000000 -0500
+++ lib/CPAN.pm	2006-02-06 07:52:59.000000000 -0500
@@ -2604,7 +2604,7 @@ sub hosthard {
 
 	$self->debug("localizing funkyftpwise[$url]") if $CPAN::DEBUG;
 	my($f,$funkyftp);
-	for $f ('lynx','ncftpget','ncftp','wget') {
+	for $f ('links','lynx','ncftpget','ncftp','wget') {
 	  next unless exists $CPAN::Config->{$f};
 	  $funkyftp = $CPAN::Config->{$f};
 	  next unless defined $funkyftp;
@@ -2613,7 +2613,7 @@ sub hosthard {
 	  ($asl_ungz = $aslocal) =~ s/\.gz//;
           $asl_gz = "$asl_ungz.gz";
 	  my($src_switch) = "";
-	  if ($f eq "lynx"){
+	  if (($f eq "lynx")||($f eq "links")){
 	    $src_switch = " -source";
 	  } elsif ($f eq "ncftp"){
 	    $src_switch = " -c";
@@ -2637,10 +2637,14 @@ Trying with "$funkyftp$src_switch" to ge
 	  my($wstatus);
 	  if (($wstatus = system($system)) == 0
 	      &&
-	      ($f eq "lynx" ?
+	      (($f eq "lynx" ?
 	       -s $asl_ungz # lynx returns 0 when it fails somewhere
 	       : 1
-	      )
+	      )||
+	      ($f eq "links" ?
+	       -s $asl_ungz # links returns 0 when it fails somewhere
+	       : 1
+	      ))
 	     ) {
 	    if (-s $aslocal) {
 	      # Looks good
@@ -2695,7 +2699,7 @@ returned status $estatus (wstat $wstatus
 });
 	  }
           return if $CPAN::Signal;
-	} # lynx,ncftpget,ncftp
+	} # links,lynx,ncftpget,ncftp
     } # host
 }
 
@@ -6022,7 +6026,7 @@ stalled.
 
 The CPAN module is designed to automate the make and install of perl
 modules and extensions. It includes some primitive searching capabilities and
-knows how to use Net::FTP or LWP (or lynx or an external ftp client)
+knows how to use Net::FTP or LWP (or lynx or links or an external ftp client)
 to fetch the raw data from the net.
 
 Modules are fetched from one or more of the mirrored CPAN
@@ -6975,16 +6979,18 @@ or
 
 =back
 
-=head2 Configuring lynx or ncftp for going through a firewall
+=head2 Configuring links or lynx or ncftp for going through a firewall
 
 If you can go through your firewall with e.g. lynx, presumably with a
 command such as
 
     /usr/local/bin/lynx -pscott:tiger
+    /usr/local/bin/links -pscott:tiger
 
 then you would configure CPAN.pm with the command
 
     o conf lynx "/usr/local/bin/lynx -pscott:tiger"
+    o conf links "/usr/local/bin/links -pscott:tiger"
 
 That's all. Similarly for ncftp or ftp, you would configure something
 like
