diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/WrapArgumentBaseNode.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/WrapArgumentBaseNode.java
index 615e63f88989f8d55f11b6456359cf1b2f22ca9f..3fd8a39add8920567661120b2aa93d1a1fece3f8 100644
--- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/WrapArgumentBaseNode.java
+++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/function/WrapArgumentBaseNode.java
@@ -73,6 +73,9 @@ public abstract class WrapArgumentBaseNode extends RNode {
         } else if (result instanceof RLanguage) {
             everSeenLanguage.enter();
             return (RLanguage) result;
+        } else if (result instanceof RFunction) {
+            everSeenLanguage.enter();
+            return (RFunction) result;
         } else {
             nonShareable.enter();
             return null;
diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleAttributes.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleAttributes.java
index 3f8f17e223d37780285308bf27ec19ad62d8e6ff..afced370ef6d28427d77bc9e1e3152c0336c1074 100644
--- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleAttributes.java
+++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/library/base/TestSimpleAttributes.java
@@ -44,6 +44,8 @@ public class TestSimpleAttributes extends TestBase {
         assertEval("{ attributes(NULL) }");
 
         assertEval("{ x<-function() 42; attr(x, \"foo\")<-\"foo\"; y<-x; attr(y, \"foo\")<-NULL; x }");
+
+        assertEval("{ f<-function(y) attr(y, \"foo\")<-NULL; x<-function() 42; attr(x, \"foo\")<-\"foo\"; s<-\"bar\"; switch(s, f(x)); x }");
     }
 
     @Test