diff --git a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/helpers/DebugHandling.java b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/helpers/DebugHandling.java
index 75684febae6ee8df37d7d1fd758169b6a918569f..b50be670aff64e6194a116cffdf175381e241629 100644
--- a/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/helpers/DebugHandling.java
+++ b/com.oracle.truffle.r.nodes.builtin/src/com/oracle/truffle/r/nodes/builtin/helpers/DebugHandling.java
@@ -598,11 +598,14 @@ public class DebugHandling {
         public void onEnter(EventContext context, VirtualFrame frame) {
             if (!RContext.getInstance().stateInstrumentation.debugGloballyDisabled()) {
                 CompilerDirectives.transferToInterpreter();
-                FunctionDefinitionNode fdn = (FunctionDefinitionNode) context.getInstrumentedNode().getRootNode();
-                FunctionStatementsEventListener ensureSingleStep = ensureSingleStep(fdn);
+                RootNode rootNode = context.getInstrumentedNode().getRootNode();
+                if (rootNode instanceof FunctionDefinitionNode) {
+                    FunctionDefinitionNode fdn = (FunctionDefinitionNode) rootNode;
+                    FunctionStatementsEventListener ensureSingleStep = ensureSingleStep(fdn);
 
-                functionStatementsEventListener.clearStepInstrument();
-                ensureSingleStep.onEnter(context, frame);
+                    functionStatementsEventListener.clearStepInstrument();
+                    ensureSingleStep.onEnter(context, frame);
+                }
             }
         }