diff --git a/sim/src/depends.rs b/sim/src/depends.rs
index d1ea8a1..eecee08 100644
--- a/sim/src/depends.rs
+++ b/sim/src/depends.rs
@@ -54,9 +54,14 @@
     Nothing,
     /// Provide dependency information that matches the other image.
     Correct,
+    /// Provide a dependency that matches the old version of the other
+    /// image.
+    OldCorrect,
     /// Provide dependency information describing something newer than the
     /// other image.
     Newer,
+    /// Don't provide an upgrade image at all for this image
+    NoUpgrade,
 }
 
 /// Describes what our expectation is for an upgrade.
@@ -101,14 +106,24 @@
     }
 
     fn my_deps(&self, _offset: usize, slot: usize) -> Vec<ImageVersion> {
-        match self.test.depends[self.number] {
-            DepType::Nothing => vec![],
-            DepType::Correct => vec![
-                ImageVersion::new_synthetic(self.other_id(), slot as u8, 0)
-            ],
-            DepType::Newer => vec![
-                ImageVersion::new_synthetic(self.other_id(), slot as u8, 1)
-            ],
+        // For now, don't put any dependencies in slot zero.  They could be
+        // added here if we someday implement checking these.
+        if slot == 0 {
+            vec![]
+        } else {
+            match self.test.depends[self.number] {
+                DepType::Nothing => vec![],
+                DepType::NoUpgrade => panic!("Shouldn't get to this point"),
+                DepType::Correct => vec![
+                    ImageVersion::new_synthetic(self.other_id(), slot as u8, 0)
+                ],
+                DepType::OldCorrect => vec![
+                    ImageVersion::new_synthetic(self.other_id(), 0, 0)
+                ],
+                DepType::Newer => vec![
+                    ImageVersion::new_synthetic(self.other_id(), slot as u8, 1)
+                ],
+            }
         }
     }
 
diff --git a/sim/src/image.rs b/sim/src/image.rs
index 82cd729..88a85be 100644
--- a/sim/src/image.rs
+++ b/sim/src/image.rs
@@ -38,6 +38,7 @@
     BoringDep,
     Depender,
     DepTest,
+    DepType,
     PairDep,
     UpgradeInfo,
 };
@@ -167,7 +168,10 @@
                 Box::new(BoringDep(image_num))
             };
             let primaries = install_image(&mut flash, &slots[0], 42784, &*dep, false);
-            let upgrades = install_image(&mut flash, &slots[1], 46928, &*dep, false);
+            let upgrades = match deps.depends[image_num] {
+                DepType::NoUpgrade => install_no_image(),
+                _ => install_image(&mut flash, &slots[1], 46928, &*dep, false)
+            };
             OneImage {
                 slots: slots,
                 primaries: primaries,
@@ -1228,6 +1232,14 @@
     }
 }
 
+/// Install no image.  This is used when no upgrade happens.
+fn install_no_image() -> ImageData {
+    ImageData {
+        plain: vec![],
+        cipher: None,
+    }
+}
+
 fn make_tlv() -> TlvGen {
     if Caps::EcdsaP224.present() {
         panic!("Ecdsa P224 not supported in Simulator");
