diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Exists.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Exists.java
index 51bf9095613afaf8efa757bfabfa5ba2fc87b64b..dff9b6e0bb8da65744281da0c509d8ed8eddb473 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Exists.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Exists.java
@@ -38,6 +38,7 @@ import com.oracle.truffle.r.runtime.RError.Message;
 import com.oracle.truffle.r.runtime.RRuntime;
 import com.oracle.truffle.r.runtime.RType;
 import com.oracle.truffle.r.runtime.builtins.RBuiltin;
+import com.oracle.truffle.r.runtime.data.RMissing;
 import com.oracle.truffle.r.runtime.data.RPromise;
 import com.oracle.truffle.r.runtime.env.REnvironment;
 
@@ -68,14 +69,14 @@ public abstract class Exists extends RBuiltinNode.Arg4 {
             if (modeType != RType.Any && obj instanceof RPromise) {
                 obj = PromiseHelperNode.evaluateSlowPath((RPromise) obj);
             }
-            return RRuntime.asLogical(obj != null && RRuntime.checkType(obj, modeType));
+            return RRuntime.asLogical(obj != null && obj != RMissing.instance && RRuntime.checkType(obj, modeType));
         }
         for (REnvironment e = env; e != REnvironment.emptyEnv(); e = e.getParent()) {
             Object obj = e.get(name);
             if (modeType != RType.Any && obj instanceof RPromise) {
                 obj = PromiseHelperNode.evaluateSlowPath((RPromise) obj);
             }
-            if (obj != null && RRuntime.checkType(obj, modeType)) {
+            if (obj != null && obj != RMissing.instance && RRuntime.checkType(obj, modeType)) {
                 return RRuntime.LOGICAL_TRUE;
             }
         }
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
index f0f5839ca9004a20c4b3a1cb6778e9c63f1fed72..ce3677460a4ae68fa76b3f045902b8ec8bec89e0 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/ExpectedTestOutput.test
@@ -153818,6 +153818,10 @@ $variables
 list(k, y, z)
 
 
+##com.oracle.truffle.r.test.library.stats.TestRandGenerationFunctions.testDotRandomSeed#
+#exists('.Random.seed', envir = .GlobalEnv, inherits = FALSE)
+[1] FALSE
+
 ##com.oracle.truffle.r.test.library.stats.TestRandGenerationFunctions.testDotRandomSeed#Output.IgnoreErrorContext#
 #{ .Random.seed }
 Error: object '.Random.seed' not found
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestRandGenerationFunctions.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestRandGenerationFunctions.java
index 7eb611414dea78ba41359db1af0bdc19ee07aec0..79fe868db28a0542966638e38d8b736348fe79ea 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestRandGenerationFunctions.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/stats/TestRandGenerationFunctions.java
@@ -110,5 +110,7 @@ public class TestRandGenerationFunctions extends TestBase {
         assertEval("{ get0('.Random.seed', envir = .GlobalEnv, inherits = FALSE) }");
         assertEval(Output.IgnoreErrorContext, "{ get('.Random.seed', envir = .GlobalEnv, inherits = TRUE) }");
         assertEval("{ get0('.Random.seed', envir = .GlobalEnv, inherits = TRUE) }");
+
+        assertEval("exists('.Random.seed', envir = .GlobalEnv, inherits = FALSE)");
     }
 }