diff --git a/vmbase/example/src/main.rs b/vmbase/example/src/main.rs
index b305559..bb64651 100644
--- a/vmbase/example/src/main.rs
+++ b/vmbase/example/src/main.rs
@@ -151,14 +151,14 @@
 
     let reader = Fdt::from_slice(fdt).unwrap();
     info!("FDT passed verification.");
-    for reg in reader.memory().unwrap() {
+    for reg in reader.memory().unwrap().unwrap() {
         info!("memory @ {reg:#x?}");
     }
 
     let compatible = CStr::from_bytes_with_nul(b"ns16550a\0").unwrap();
 
     for c in reader.compatible_nodes(compatible).unwrap() {
-        let reg = c.reg().unwrap().next().unwrap();
+        let reg = c.reg().unwrap().unwrap().next().unwrap();
         info!("node compatible with '{}' at {reg:?}", compatible.to_str().unwrap());
     }
 
@@ -167,7 +167,7 @@
     info!("FDT successfully unpacked.");
 
     let path = CStr::from_bytes_with_nul(b"/memory\0").unwrap();
-    let mut node = writer.node_mut(path).unwrap();
+    let mut node = writer.node_mut(path).unwrap().unwrap();
     let name = CStr::from_bytes_with_nul(b"child\0").unwrap();
     let mut child = node.add_subnode(name).unwrap();
     info!("Created subnode '{}/{}'.", path.to_str().unwrap(), name.to_str().unwrap());
