diff --git a/lib-base/source/java/ch/systemsx/cisd/base/unix/Unix.java b/lib-base/source/java/ch/systemsx/cisd/base/unix/Unix.java
index 63ad45b096882fcd043f4c502d2d99850e0db36b..d1fbda3f5260397044c348729ce3db5b8ca758ed 100644
--- a/lib-base/source/java/ch/systemsx/cisd/base/unix/Unix.java
+++ b/lib-base/source/java/ch/systemsx/cisd/base/unix/Unix.java
@@ -42,7 +42,17 @@ public final class Unix
     }
 
     public static boolean isOperational() {
-        return File.separatorChar == '/'; //On Posix systems the value of this field is '/'
+        boolean isPosixFileSystem = File.separatorChar == '/'; //On Posix systems the value of this field is '/';
+        boolean isIdCommandLineToolAvailable;
+
+        try {
+            getUid();
+            isIdCommandLineToolAvailable = true;
+        } catch (Throwable t) {
+            isIdCommandLineToolAvailable = false;
+        }
+
+        return isPosixFileSystem && isIdCommandLineToolAvailable;
     }
 
     //