diff --git a/pd/src/m_binbuf.c b/pd/src/m_binbuf.c
index aed7e8787dcc63c6b61541970837610dbec4ca4b..3a86bfb37fcffeaa7a613ce2d916f4e35440d6f8 100644
--- a/pd/src/m_binbuf.c
+++ b/pd/src/m_binbuf.c
@@ -1693,7 +1693,8 @@ void binbuf_evalfile(t_symbol *name, t_symbol *dir)
             b = newb;
         }
         binbuf_eval(b, 0, 0, 0);
-        canvas_initbang((t_canvas *)(s__X.s_thing)); /* JMZ*/
+        if (s__X.s_thing && pd_class(s__X.s_thing) == canvas_class)
+            canvas_initbang((t_canvas *)(s__X.s_thing));
         gensym("#A")->s_thing = bounda;
         s__N.s_thing = boundn;
     }