diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EnvFunctions.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EnvFunctions.java
index 3883d7ba9515f1b3213b6294cd5e5b8468ae1f18..1fe793922b1980cd44b23a674a89c2296e4ec96f 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EnvFunctions.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/EnvFunctions.java
@@ -69,6 +69,7 @@ import com.oracle.truffle.r.runtime.RInternalError;
 import com.oracle.truffle.r.runtime.RRuntime;
 import com.oracle.truffle.r.runtime.VirtualEvalFrame;
 import com.oracle.truffle.r.runtime.builtins.RBuiltin;
+import com.oracle.truffle.r.runtime.context.RContext;
 import com.oracle.truffle.r.runtime.data.RAttributable;
 import com.oracle.truffle.r.runtime.data.RAttributesLayout;
 import com.oracle.truffle.r.runtime.data.RDataFactory;
@@ -88,6 +89,7 @@ import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector;
 import com.oracle.truffle.r.runtime.data.model.RAbstractVector;
 import com.oracle.truffle.r.runtime.env.REnvironment;
+import com.oracle.truffle.r.runtime.env.REnvironment.ContextStateImpl;
 import com.oracle.truffle.r.runtime.env.frame.ActiveBinding;
 import com.oracle.truffle.r.runtime.env.frame.FrameSlotChangeMonitor;
 
@@ -484,7 +486,20 @@ public class EnvFunctions {
         }
 
         @Specialization
+        @TruffleBoundary
         protected String environmentName(REnvironment env) {
+            ContextStateImpl state = RContext.getInstance().stateREnvironment;
+            if (env == state.getGlobalEnv()) {
+                return "R_GlobalEnv";
+            } else if (env == state.getBaseEnv()) {
+                return "base";
+            } else if (env == REnvironment.emptyEnv()) {
+                return "R_EmptyEnv";
+            } else if (env.isPackageEnv() != null) {
+                return env.isPackageEnv();
+            } else if (env.isNamespaceEnv()) {
+                return env.getNamespaceSpec().getDataAt(0);
+            }
             return env.getName();
         }