several days ago, I tried the aMule-CVS-20070713.tar.bz2. And it crash sometime, but I forget the post the backtrace. I manage to solve the problems by modifying ClientTCPSocket.cpp:1145
1143 if (reqfile->IsPartFile() && reqfile->GetFileSize() > PARTSIZE) {
1144 if (thePrefs::GetMaxSourcePerFile() > ((CPartFile*)reqfile)->GetSourceCount()) {
1145 theApp->downloadqueue->CheckAndAddKnownSource((CPartFile*)reqfile, m_client);
1146 if(m_client == NULL) break;
1147 }
1148 }
After return from CheckAndAddKnownSource, the m_client was set to NULL. There is some source cleaning job in it.
I just add a line to return if the m_client is NULL.
I don't know if it is correct or not, but it works.