I wonder if it makes sense to pass the lock to mem_pdc_call and let it do the lock/unlock rather than doing that in every caller to mem_pdc_call. -P