diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/FileFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/FileFunctions.java
index 2b33757ec46aa25f0170a3c31f779b4e120d4707..f4d636e57a42f4340d51a196310c18a5b377efdf 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/FileFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/FileFunctions.java
@@ -43,7 +43,6 @@ import java.nio.file.Paths;
 import java.nio.file.SimpleFileVisitor;
 import java.nio.file.StandardCopyOption;
 import java.nio.file.attribute.BasicFileAttributes;
-import java.nio.file.attribute.FileTime;
 import java.nio.file.attribute.PosixFileAttributes;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -315,9 +314,9 @@ public class FileFunctions {
                         PosixFileAttributes pfa = Files.readAttributes(path, PosixFileAttributes.class);
                         size = pfa.size();
                         isdir = RRuntime.asLogical(pfa.isDirectory());
-                        mtime = getTimeInSecs(pfa.lastModifiedTime());
-                        ctime = getTimeInSecs(pfa.creationTime());
-                        atime = getTimeInSecs(pfa.lastAccessTime());
+                        mtime = Utils.getTimeInSecs(pfa.lastModifiedTime());
+                        ctime = Utils.getTimeInSecs(pfa.creationTime());
+                        atime = Utils.getTimeInSecs(pfa.lastAccessTime());
                         uname = pfa.owner().getName();
                         grname = pfa.group().getName();
                         mode = Utils.intFilePermissions(pfa.permissions());
@@ -347,14 +346,6 @@ public class FileFunctions {
             return RDataFactory.createList(data, NAMES_VECTOR);
         }
 
-        private static int getTimeInSecs(Object fileTime) {
-            if (fileTime == null) {
-                return RRuntime.INT_NA;
-            } else {
-                return (int) ((FileTime) fileTime).toMillis() / 1000;
-            }
-        }
-
         private static Object createColumnData(Column column, int vecLength) {
             // @formatter:off
             switch(column) {
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSrcref.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSrcref.java
index 906133d1dd4ba488fbb275f60d68101ddbcddc15..ed438162f9482c8253064a170b17de771c27fd90 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSrcref.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/RSrcref.java
@@ -92,15 +92,13 @@ public class RSrcref {
         return env;
     }
 
-    private static double getTimestamp(Path path) {
-        double mtime;
+    private static int getTimestamp(Path path) {
         try {
             PosixFileAttributes pfa = Files.readAttributes(path, PosixFileAttributes.class);
-            mtime = pfa.lastModifiedTime().toMillis();
+            return Utils.getTimeInSecs(pfa.lastModifiedTime());
         } catch (IOException ex) {
-            mtime = RRuntime.DOUBLE_NA;
+            return RRuntime.INT_NA;
         }
-        return mtime;
     }
 
     /**
diff --git a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/Utils.java b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/Utils.java
index a511ed968943b46d2c5da96149c8453114209c04..5d3c31feba257afdbfd70dbc0da57b7c367a7f19 100644
--- a/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/Utils.java
+++ b/com.oracle.truffle.r.runtime/src/com/oracle/truffle/r/runtime/Utils.java
@@ -30,6 +30,7 @@ import java.io.InputStreamReader;
 import java.nio.file.FileSystem;
 import java.nio.file.FileSystems;
 import java.nio.file.Path;
+import java.nio.file.attribute.FileTime;
 import java.nio.file.attribute.PosixFilePermission;
 import java.util.Arrays;
 import java.util.Set;
@@ -718,4 +719,12 @@ public final class Utils {
         }
         return startingTempDir;
     }
+
+    public static int getTimeInSecs(FileTime fileTime) {
+        if (fileTime == null) {
+            return RRuntime.INT_NA;
+        } else {
+            return (int) (fileTime.toMillis() / 1000);
+        }
+    }
 }