I've comitted the attached patch (approved by fche) which addresses a problem when building sid with recent gcc compilers. The problem is that this->trace_stream << endl; does not call template basic_cpu::cpu_trace_stream& operator<< (basic_cpu::cpu_trace_stream& s, T t) as expected. As a result, sid's tracing output comes out all on one line when tracing is to cout. The patch defines a new method of basic_cpu::cpu_trace_stream which can be explicitely called to avoid the ambiguity. The patch also changes an unnecessary dynamic_cast to a static_cast. Something we noticed while investigating. Dave