Software upgrades are unreliable, often causing downtime or data loss. I propose Imago, an approach for removing the leading causes of upgrade failures (broken dependencies) and of planned downtime (data migrations). While imposing a higher resource overhead than previous techniques, Imago is more dependable and easier to use correctly. Categories and Subject Descriptors K.6.3 [Management of Computing and Information Systems]: Software Management General Terms Management, Reliability Keywords software upgrades, online upgrades, dependability, hidden dependencies, data migration