Hopefully fixed for the next release.
The edit changes the defense systems' check from: checking the shield damage difference, to: if the shield is already at 0 or lower. Not sure if this breaks any other time calculateDamage() is called, but in testing, the defense systems seem to work as expected now.