diff --git a/pd/src/g_canvas.h b/pd/src/g_canvas.h
index 768aeb18a7085f3e47357ce8aca5ce07813c0f52..231b84c47afbc876d8380be85a095dccd085cf64 100644
--- a/pd/src/g_canvas.h
+++ b/pd/src/g_canvas.h
@@ -532,6 +532,8 @@ EXTERN void canvas_eraselinesfor(t_canvas *x, t_text *text);
 EXTERN void canvas_stowconnections(t_canvas *x);
 EXTERN void canvas_restoreconnections(t_canvas *x);
 EXTERN void canvas_redraw(t_canvas *x);
+EXTERN void canvas_closebang(t_canvas *x);
+EXTERN void canvas_initbang(t_canvas *x);
 
 EXTERN t_inlet *canvas_addinlet(t_canvas *x, t_pd *who, t_symbol *sym);
 EXTERN void canvas_rminlet(t_canvas *x, t_inlet *ip);
diff --git a/pd/src/m_binbuf.c b/pd/src/m_binbuf.c
index 9d3582a8d22612a07f539be8b9207fba6db3884b..554b2772126921a221f576bd2d7100b8bd6c101c 100644
--- a/pd/src/m_binbuf.c
+++ b/pd/src/m_binbuf.c
@@ -7,6 +7,7 @@
 #include <stdlib.h>
 #include "m_pd.h"
 #include "s_stuff.h"
+#include "g_canvas.h"
 #include <stdio.h>
 
 #ifdef HAVE_UNISTD_H
@@ -1671,6 +1672,7 @@ 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*/
         gensym("#A")->s_thing = bounda;
         s__N.s_thing = boundn;
     }