Thank you, Mark for your explanation. My thought on a solution is in the same line of thinking as yours. Since I posted this message, I have modified the high level application design to include a acknowledge flag whenever there is a request for information from the slave. If the slave does not acknowledge within the 1 second software interrupt time, a retry with that same message will occur up to 5 times. If after 5 times (5 seconds), there is no response from the slave, the application will generate a shutdown error. In this way, I can be certain that there is a communication problem with any particular slave, and the communication problem is not just missing one acknowledge (maybe due to electrical noise in the environment). I want to make the shutdown of the unit more I2C noise immune.