a4e02b
diff --git a/Cwd.pm b/Cwd.pm
a4e02b
index 9b5183e..e8b9f19 100644
a4e02b
--- a/Cwd.pm
a4e02b
+++ b/Cwd.pm
a4e02b
@@ -3,7 +3,7 @@ use strict;
a4e02b
 use Exporter;
a4e02b
 use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 my $xs_version = $VERSION;
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm
a4e02b
index 2709c39..32b987e 100644
a4e02b
--- a/lib/File/Spec.pm
a4e02b
+++ b/lib/File/Spec.pm
a4e02b
@@ -3,7 +3,7 @@ package File::Spec;
a4e02b
 use strict;
a4e02b
 use vars qw(@ISA $VERSION);
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 my %module = (MacOS   => 'Mac',
a4e02b
diff --git a/lib/File/Spec/AmigaOS.pm b/lib/File/Spec/AmigaOS.pm
a4e02b
index e6d6f5f2a..7a5889c 100644
a4e02b
--- a/lib/File/Spec/AmigaOS.pm
a4e02b
+++ b/lib/File/Spec/AmigaOS.pm
a4e02b
@@ -4,7 +4,7 @@ use strict;
a4e02b
 use vars qw(@ISA $VERSION);
a4e02b
 require File::Spec::Unix;
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.64';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 @ISA = qw(File::Spec::Unix);
a4e02b
@@ -15,7 +15,8 @@ File::Spec::AmigaOS - File::Spec for AmigaOS
a4e02b
 
a4e02b
 =head1 SYNOPSIS
a4e02b
 
a4e02b
- require File::Spec::AmigaOS; # Done automatically by File::Spec if needed
a4e02b
+ require File::Spec::AmigaOS; # Done automatically by File::Spec
a4e02b
+                              # if needed
a4e02b
 
a4e02b
 =head1 DESCRIPTION
a4e02b
 
a4e02b
diff --git a/lib/File/Spec/Cygwin.pm b/lib/File/Spec/Cygwin.pm
a4e02b
index 67f056f..2092eb8 100644
a4e02b
--- a/lib/File/Spec/Cygwin.pm
a4e02b
+++ b/lib/File/Spec/Cygwin.pm
a4e02b
@@ -4,7 +4,7 @@ use strict;
a4e02b
 use vars qw(@ISA $VERSION);
a4e02b
 require File::Spec::Unix;
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 @ISA = qw(File::Spec::Unix);
a4e02b
diff --git a/lib/File/Spec/Epoc.pm b/lib/File/Spec/Epoc.pm
a4e02b
index 17e3f54..22f0192 100644
a4e02b
--- a/lib/File/Spec/Epoc.pm
a4e02b
+++ b/lib/File/Spec/Epoc.pm
a4e02b
@@ -3,7 +3,7 @@ package File::Spec::Epoc;
a4e02b
 use strict;
a4e02b
 use vars qw($VERSION @ISA);
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 require File::Spec::Unix;
a4e02b
diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm
a4e02b
index 470c771..af2c498 100644
a4e02b
--- a/lib/File/Spec/Functions.pm
a4e02b
+++ b/lib/File/Spec/Functions.pm
a4e02b
@@ -5,7 +5,7 @@ use strict;
a4e02b
 
a4e02b
 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 require Exporter;
a4e02b
diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm
a4e02b
index 329451f..52c3bfe 100644
a4e02b
--- a/lib/File/Spec/Mac.pm
a4e02b
+++ b/lib/File/Spec/Mac.pm
a4e02b
@@ -4,7 +4,7 @@ use strict;
a4e02b
 use vars qw(@ISA $VERSION);
a4e02b
 require File::Spec::Unix;
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 @ISA = qw(File::Spec::Unix);
a4e02b
diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm
a4e02b
index 55e6d33..804ecdb 100644
a4e02b
--- a/lib/File/Spec/OS2.pm
a4e02b
+++ b/lib/File/Spec/OS2.pm
a4e02b
@@ -4,7 +4,7 @@ use strict;
a4e02b
 use vars qw(@ISA $VERSION);
a4e02b
 require File::Spec::Unix;
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 @ISA = qw(File::Spec::Unix);
a4e02b
diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm
a4e02b
index 586e9b0..3916a11 100644
a4e02b
--- a/lib/File/Spec/Unix.pm
a4e02b
+++ b/lib/File/Spec/Unix.pm
a4e02b
@@ -3,7 +3,7 @@ package File::Spec::Unix;
a4e02b
 use strict;
a4e02b
 use vars qw($VERSION);
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 my $xs_version = $VERSION;
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
diff --git a/lib/File/Spec/VMS.pm b/lib/File/Spec/VMS.pm
a4e02b
index 600c49f..02cc0b0 100644
a4e02b
--- a/lib/File/Spec/VMS.pm
a4e02b
+++ b/lib/File/Spec/VMS.pm
a4e02b
@@ -4,7 +4,7 @@ use strict;
a4e02b
 use vars qw(@ISA $VERSION);
a4e02b
 require File::Spec::Unix;
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 @ISA = qw(File::Spec::Unix);
a4e02b
@@ -437,15 +437,13 @@ Attempt to convert an absolute file specification to a relative specification.
a4e02b
 
a4e02b
 sub abs2rel {
a4e02b
     my $self = shift;
a4e02b
-    return vmspath(File::Spec::Unix::abs2rel( $self, @_ ))
a4e02b
-        if ((grep m{/}, @_) && !(grep m{(?
a4e02b
-
a4e02b
     my($path,$base) = @_;
a4e02b
+
a4e02b
     $base = $self->_cwd() unless defined $base and length $base;
a4e02b
 
a4e02b
     # If there is no device or directory syntax on $base, make sure it
a4e02b
     # is treated as a directory.
a4e02b
-    $base = VMS::Filespec::vmspath($base) unless $base =~ m{(?
a4e02b
+    $base = vmspath($base) unless $base =~ m{(?
a4e02b
 
a4e02b
     for ($path, $base) { $_ = $self->rel2abs($_) }
a4e02b
 
a4e02b
@@ -461,7 +459,7 @@ sub abs2rel {
a4e02b
     
a4e02b
     my ($path_volume, $path_directories, $path_file) = $self->splitpath($path);
a4e02b
     my ($base_volume, $base_directories, $base_file) = $self->splitpath($base);
a4e02b
-    return $path unless lc($path_volume) eq lc($base_volume);
a4e02b
+    return $self->canonpath( $path ) unless lc($path_volume) eq lc($base_volume);
a4e02b
 
a4e02b
     # Now, remove all leading components that are the same
a4e02b
     my @pathchunks = $self->splitdir( $path_directories );
a4e02b
diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm
a4e02b
index 6df7ee8..1105b67 100644
a4e02b
--- a/lib/File/Spec/Win32.pm
a4e02b
+++ b/lib/File/Spec/Win32.pm
a4e02b
@@ -5,7 +5,7 @@ use strict;
a4e02b
 use vars qw(@ISA $VERSION);
a4e02b
 require File::Spec::Unix;
a4e02b
 
a4e02b
-$VERSION = '3.62';
a4e02b
+$VERSION = '3.63';
a4e02b
 $VERSION =~ tr/_//d;
a4e02b
 
a4e02b
 @ISA = qw(File::Spec::Unix);
a4e02b
diff --git a/t/abs2rel.t b/t/abs2rel.t
a4e02b
index 5e33ab6..b77a1c2 100644
a4e02b
--- a/t/abs2rel.t
a4e02b
+++ b/t/abs2rel.t
a4e02b
@@ -6,7 +6,7 @@ use Test::More;
a4e02b
 use Cwd qw(cwd getcwd abs_path);
a4e02b
 use File::Spec();
a4e02b
 use File::Temp qw(tempdir);
a4e02b
-use File::Path qw(make_path);
a4e02b
+use File::Path qw(mkpath);
a4e02b
 
a4e02b
 my $startdir = cwd();
a4e02b
 my @files = ( 'anyfile', './anyfile', '../first_sub_dir/anyfile', '../second_sub_dir/second_file' );
a4e02b
@@ -25,8 +25,8 @@ sub test_rel2abs {
a4e02b
         File::Spec->catdir('first_sub_dir',  'sub_sub_dir'),
a4e02b
         'second_sub_dir'
a4e02b
     );
a4e02b
-    make_path(@subdirs, { mode => 0711 })
a4e02b
-        or die "Unable to make_path: $!";
a4e02b
+    mkpath(@subdirs, { mode => 0711 })
a4e02b
+        or die "Unable to mkpath: $!";
a4e02b
 
a4e02b
     open my $OUT2, '>',
a4e02b
         File::Spec->catfile('second_sub_dir', 'second_file')