Procedure * Procedure_Pool::find_by_id(int _id)
{
        LD_TRACE("Procedure_Pool::find_by_id");
        mutex_.acquire();
        Procedure_By_Id::iterator it = procedure_by_id_.find(_id);
        if (it != procedure_by_id_.end()) {
                ACE_DEBUG((LM_DEBUG, "%N:%l Found procedure for id: %d \n", _id));
                mutex_.release();
                return *it;
        }
        ACE_DEBUG((LM_DEBUG, "%N:%l Not able to found procedure for id: %d \n", _id));
        mutex_.release();
        // return null
        return 0;
}

BTW, As a side note, I highly recommend you to use ACE Guards (RAII...) for the mutex thing.
Kobi