[minor] Reverse the order of these two lines? The "exception backup" is requires for multiple of the 'if...else' branches, but the "get source path" statement applies only to the first 'if..." branch?