The use case I have is that the program being updated by wyUpdate is an update tool that deploys update packages to a number of servers that are located on-premises at various customers sites. We use wyUpdate to download the packages as part of the update to the update tool. Not all of the packages change between updates to the update tool. The packages are quite large. So, we would like to leverage patches. However, prior to using wyUpdate, users of the update tool downloaded the packages individually. We can send instructions to rely on wyUpdate. But, because a large number of users have been in the habit of downloading packages, we want to be certain that the package is the correct version at them time the update tool deploys it. So, we check. If an incorrect version is found, we would like wyUpdate to download it. The problem with patches is, they dont seem to check files that were not supposed to change between versions. It would be great if wyUpdate would do some sort of checksum or hash on files that did not change in a patch and switch to the catch-all if this condition is found. But, I realize that your current solution solves the needs of 99% of the cases and that you recommend reinstalling in this case. This is very reasonable. However, it does not help us with our particular use case. We are trying to make updating with the update tool as easy and reliable as possible for customers and do not want to ask them to reinstall. We want them to launch the update tool, have it auto update if possible and make it easy for them to deploy the overall system to the servers that need to be updated. Currently, we are only building the catch-all. Im already using a customized version of wyUpdate that allows me to pass cookies used for authentication to the download code. I will probably add a command line option to wyUpdate to force using the catch-all if an incorrect version of an update package is found. Unless, you have a better suggestion.