diff --git a/misc-scripts/xref_mapping/XrefMapper/db.pm b/misc-scripts/xref_mapping/XrefMapper/db.pm
index 443f1519c3c1aa9767af03b4353a565cf46eee10..4647b3e9c7bd424c681e55fef10bba75eacaaebf 100644
--- a/misc-scripts/xref_mapping/XrefMapper/db.pm
+++ b/misc-scripts/xref_mapping/XrefMapper/db.pm
@@ -2,6 +2,7 @@ package XrefMapper::db;
 
 use vars '@ISA';
 use Bio::EnsEMBL::DBSQL::DBConnection;
+use Cwd;
 
 sub new{
   my($class, @args) = @_;
@@ -101,17 +102,17 @@ sub process_dir {
   my ($dir) = @_;
 
   if($dir =~ "^\/" ) { # if it start with / then its not from pwd
-    if(! -e $dir){
+    if(! -d $dir){
       die "directory does not exist $dir\n";
     }
   }
   elsif($dir eq "."){
-    $dir = $ENV{PWD};
+    $dir = cwd();
   }
   elsif($dir =~ "^\.\/"){
     my $tmp = $dir;
-    $dir = $ENV{PWD}."/".substr($tmp,2);
-    if(! -e $dir){
+    $dir = cwd() . "/" . substr( $tmp, 2 );
+    if(! -d $dir){
       die "directory does not exist $dir\n";
     }
   }