diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Names.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Names.java
index b5ac4a5be911b6973c4e705811d9527fc48b1b6e..3cf6799b22be9e11bcda5e21b99de67167f54361 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Names.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/Names.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -30,6 +30,7 @@ import com.oracle.truffle.r.nodes.builtin.*;
 import com.oracle.truffle.r.runtime.*;
 import com.oracle.truffle.r.runtime.data.*;
 import com.oracle.truffle.r.runtime.data.model.*;
+import com.oracle.truffle.r.runtime.env.REnvironment;
 
 @RBuiltin(name = "names", kind = PRIMITIVE, parameterNames = {"x"})
 public abstract class Names extends RBuiltinNode {
@@ -47,6 +48,12 @@ public abstract class Names extends RBuiltinNode {
         }
     }
 
+    @Specialization
+    protected Object getNames(REnvironment env) {
+        controlVisibility();
+        return env.ls(true, null, false);
+    }
+
     @Fallback
     protected RNull getNames(@SuppressWarnings("unused") Object operand) {
         controlVisibility();