> Mmm...I do nothing more than:
> 1- Create a io_service::work on the heap;
> 2- Create a new Thread;
> 3- Call the io_service.run() within this new thread;
> 4- Assign the io_service::work* to a boost::shared_ptr;
> 5- Use the timer we discuss;
Well, if your code that simple, you can extract a minimal reproducing excerpt and post it here - then other people will be able to try and debug it. Just remove anything unrelated to the timer problem (maybe after you do this, the problem will disappear :) ).

> If u have other suggestions, are welcome!
 
I never encountered such a problem. It seems that your io_service dosn't work properly, but why it happens, I don't know.