Hi All, I think this is mainly a question for Istvan, but any help would be appreciated. Last night while working on an instrument I got setfaults every time the first note stopped. After debugging last night and this morning I sort of came to the conclusion that somehow in the deact call there was an infinite loop going on. After making some small tests and searching around in insert.c to figure out the UDO code a little bit better, I found this bit of code in useropcdset: /* link into deact chain */ lcurip->opcod_deact = parent_ip->opcod_deact; lcurip->subins_deact = NULL; parent_ip->opcod_deact = (void*) p; p->ip = lcurip; I thought this line was a little suspect: lcurip->opcod_deact = parent_ip->opcod_deact; and commenting it out got yielded in a run without segfaults. However, I doubt that removing that code is the solution, is it? The situation that seems to cause all of this is multiple calls to the same UDO in the same instrument within a loop, such as (pseudo-code): icounter = 0 loopStart: ival myUDO i1, i2, i3 if (icounter < 512) igoto loopStart Any ideas what is a correct solution? (Please let me know if you need a test file and I can put one together). Thanks, steven ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net