Hello Fabrizio We found that a core is produced if the function XrdClientAdmin_c::XrdDirList(const char *dir) is called and the directory for which we want to get the listing is empty. In this case the call to adminst->DirList(dir, entries) in XrdClientAdmin_c::XrdDirList returns an empty vector (entries) and the call joinStrings(lst, entries); crashes because joinStrings can not handle an empty vector. At least that's what it looks to me. The test program that I run is: #include "XrdClient/XrdClient.hh" #include "XrdClient/XrdClientAdmin_c.hh" #include <iostream> int main(int argc, char **argv) { XrdInitialize(argv[1], 2); char *strans; strans = XrdDirList("/prod/s1/s2/s3/s5"); cout << "answer : " << strans endl; XrdTerminate(); } and the core is: (gdb) where #0 0x005cbcdf in raise () from /lib/tls/libc.so.6 #1 0x005cd4e5 in abort () from /lib/tls/libc.so.6 #2 0x0804d15e in XrdClientString::At(int) (this=0xbfff9af0, pos=-1) at XrdClientString.hh:103 #3 0x0804cfab in XrdClientString::operator[](int) (this=0xbfff9af0, pos=-1) at XrdClientString.hh:213 #4 0x0804de78 in joinStrings(XrdClientString&, XrdClientVector<XrdClientString>) (buf=@0xbfff9af0, vs={data = 0x0, size = 0, capacity = 0}) at XrdClientAdmin.cc:46 #5 0x0804c601 in XrdDirList (dir=0x8071228 "/prod/s1/s2/s3/s5") at XrdClientAdmin_c.cc:230 #6 0x0804b9c1 in main (argc=2, argv=0xbfff9bd4) at TestXrdClient.cc:26 The xrootd version is 20041220-1337. Thanks, Wilko