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