martin wrote: > Hi, > > implemented the following, but it did not solve the issue :-( > > > timers.c > > cTimer::~cTimer() > { > if(aux) free(aux); > } > > .. > > lifetime = Timer.lifetime; > strncpy(file, Timer.file, sizeof(file)); > if (aux) free(aux); > aux = Timer.aux ? strdup(Timer.aux) : NULL; > > > Klaus's debugging statements did not work, as gcc refuses work .. Sorry, that was a typo - I was in a hurry ;-) It needs to be fprintf(). Anyway, Alexander Rieger just sent me a PM in which he noted that the operator=() function needs to check whether this is an assignment to "self". Please try this: Timer& cTimer::operator= (const cTimer &Timer) { if (this != &Timer) { startTime = Timer.startTime; stopTime = Timer.stopTime; lastSetEvent = 0; recording = Timer.recording; pending = Timer.pending; inVpsMargin = Timer.inVpsMargin; flags = Timer.flags; channel = Timer.channel; day = Timer.day; weekdays = Timer.weekdays; start = Timer.start; stop = Timer.stop; priority = Timer.priority; lifetime = Timer.lifetime; strncpy(file, Timer.file, sizeof(file)); free(aux); aux = Timer.aux ? strdup(Timer.aux) : NULL; event = NULL; } return *this; } Klaus