diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateClass.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateClass.java
index e45147319f4d1608535cd35788ef28dc61a80b2f..3190e1d24fd613b760278e7745d6583077430229 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateClass.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/base/UpdateClass.java
@@ -67,7 +67,10 @@ public abstract class UpdateClass extends RBuiltinNode.Arg2 {
 
     @Specialization
     protected Object setClass(@SuppressWarnings("unused") RNull arg, @SuppressWarnings("unused") Object className) {
-        throw error(RError.Message.SET_ATTRIBUTES_ON_NULL);
+        if (className != RNull.instance) {
+            throw error(RError.Message.SET_ATTRIBUTES_ON_NULL);
+        }
+        return RNull.instance;
     }
 
     @Specialization(limit = "CACHE_LIMIT", guards = "cachedClassName == className")