Hello, I am doing a research about Monte Carlo Tree Search efficiency on KBNK chess ending. I use framework and algorithm implementation in C++. Since I had some memory leaks, that I couldn't manage to identify, I decided to try Boost's shared_ptr. I reorganized the whole thing to use it, but I encountered a problem, which I cannot solve. The problem occurs, when I try to call class member function, which was declared "virtual" in super class. If I try to call functions, that are not redefined, everything works as expected. Ex.: class Base{ public: int val = 0; virtual void fun(){ /* do something */} }; class Derived : public Base{ public: void fun(){ /*redefined*/} void fun1(){ /*not redefined*/} }; /* ... */ boost::shared_ptr<Base> object(new Derived); object->val = 1; //this works ok object->fun1(); //also works ok object->fun(); //does not work, I get segfault and "<symbol is not available>" error in stack trace I get the same problem if I use boost::shared_ptr<Derived> instead of boost::shared_ptr<Base>. If I change fun() in Base class to non-virtual thing works (then I cannot use polymorphism of course). I use Boost 1.4 on Ubuntu 10.04. Hope someone could help me. JAnez --- Janez Urevc Pod anteno 3a 6320 Portorož Slovenija GSM: +386 (0)40 731 632 email: janez@janezek.org blog: http://www.janezek.org skype: slashrsm gtalk: janez@janezek.org twitter: slashrsm