This bug has been fixed in the upstream's CVS altho it still required a modification to get it to compile on my machine.
The affected files are src/DBuffer.{cpp,h}. By compiling the CVS code with gcc 4.1.2, i was getting: [...] then mv -f ".deps/DBuffer.Tpo" ".deps/DBuffer.Po"; else rm -f ".deps/DBuffer.Tpo"; exit 1; fi DBuffer.cpp: In member function 'void vapp::DBuffer::operator<<(std::string)': DBuffer.cpp:211: erreur: ambiguous overload for 'operator<<' in '*(vapp::DBuffer*)this << s. std::basic_string<_CharT, _Traits, _Alloc>::length [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]()' DBuffer.cpp:169: note: candidats sont: void vapp::DBuffer::operator<<(bool) DBuffer.cpp:181: note: void vapp::DBuffer::operator<<(int) DBuffer.cpp:189: note: void vapp::DBuffer::operator<<(unsigned int) DBuffer.cpp:202: note: void vapp::DBuffer::operator<<(float) DBuffer.cpp:210: note: void vapp::DBuffer::operator<<(std::string) <near match> make[1]: *** [DBuffer.o] Erreur 1 make[1]: quittant le répertoire « /tmp/xmoto/src » make: *** [all-recursive] Erreur 1 That should be fixed soon, but in the meantime i simply modified the method starting at line 211 of DBuffer.cpp to: void DBuffer::operator <<(std::string s) { *this << static_cast<unsigned int>(s.length()); this->writeBuf(s.c_str(), s.length()); } Once recompiled, the problem is fixed! My replays [in which i grab at least one apple] are now valid and play fine. Greetings go to Nicolas for the fix! -Pascal -- Homepage (http://organact.mine.nu) Debian GNU/Linux (http://www.debian.org) École de technologie supérieure (http://www.etsmtl.ca)