I would be more curious about the way you trap errors in VB code. The VB error object is a tricky thing. It gets changed and emptied without you expecting it. In your code you suppose the original Err.Number still to be there. Are you sure it will be?