diff --git a/nameserver/mockNS/MockNameServer.cpp b/nameserver/mockNS/MockNameServer.cpp
index 16155c08855b77d2aee057add8391e198b2f1405..7c52867870513b19b57dade6b4fc405b8ca439f3 100644
--- a/nameserver/mockNS/MockNameServer.cpp
+++ b/nameserver/mockNS/MockNameServer.cpp
@@ -641,7 +641,12 @@ cta::ArchiveDirEntry cta::MockNameServer::getArchiveDirEntry(
   if (ArchiveDirEntry::ENTRYTYPE_FILE == entryType)
     size = atol(Utils::getXattr(fsPath, "user.CTASize").c_str());
   const uint64_t fileId = atol(Utils::getXattr(fsPath, "user.CTAFileID").c_str());
-  ArchiveFileStatus status(owner, fileId, statResult.st_mode, size, checksum, storageClassName);
+  std::stringstream modeStrTr;
+  std::string modeStr = Utils::getXattr(fsPath, "user.CTAMode");
+  modeStrTr <<  modeStr;
+  mode_t mode;
+  modeStrTr >> std::oct >> mode;
+  ArchiveFileStatus status(owner, fileId, mode, size, checksum, storageClassName);
 
   return ArchiveDirEntry(entryType, name, status, tapeCopies);
 }
diff --git a/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp b/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp
index 6428598f7a0054de29b8aaa6aa07e2f92a93daf6..076937ad3c5be07ca73e6337874a070d30d607be 100644
--- a/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp
+++ b/tapeserver/castor/tape/tapeserver/daemon/DataTransferSessionTest.cpp
@@ -922,9 +922,9 @@ TEST_F(castor_tape_tapeserver_daemon_DataTransferSessionTest, DataTransferSessio
   for(auto i=remoteFilePaths.begin(); i!=remoteFilePaths.end(); i++) {
     /*ASSERT_NO_THROW*/(ns.statFile(requester, *i));
     std::unique_ptr<cta::ArchiveFileStatus> stat(ns.statFile(requester, *i));
-    ASSERT_NE((uint64_t)(stat.get()), NULL);
-    ASSERT_EQ(stat->mode, 0777);
-    ASSERT_EQ(stat->size, 1000);
+    ASSERT_NE(NULL, (uint64_t)(stat.get()));
+    ASSERT_EQ(0100777, stat->mode);
+    ASSERT_EQ(1000, stat->size);
   }
 }