In earlier stages of C++, it was impossible to delete a const object, even if that object was constructed on the free store. This could cause memory leaks.
However, the C++ Standard was changed recently. You can now use operator delete to destroy const objects that were created by new:
const char * p = new char; // ptr to const char
const Foo * const f = new Foo; // const ptr to const Foo
delete p; // fine
delete f; // fine
Note that some existing compilers may not support this feature yet.