Index: m_class.c =================================================================== --- m_class.c (Revision 9979) +++ m_class.c (Arbeitskopie) @@ -522,6 +522,7 @@ return (gensym(namebuf)); } +#define MAXOBJDEPTH 1000 static int tryingalready; void canvas_popabstraction(t_canvas *x); @@ -537,14 +538,17 @@ t_pd *current; int fd; char dirbuf[MAXPDSTRING], *nameptr; - if (tryingalready) return; + if (tryingalready>MAXOBJDEPTH){ + error("maximum object loading depth %d reached", MAXOBJDEPTH); + return; + } newest = 0; class_loadsym = s; if (sys_load_lib(canvas_getcurrent(), s->s_name)) { - tryingalready = 1; + tryingalready++; typedmess(dummy, s, argc, argv); - tryingalready = 0; + tryingalready--; return; } class_loadsym = 0;