diff --git a/nested/src/editors/list/nav.rs b/nested/src/editors/list/nav.rs
index 00966c0..157a479 100644
--- a/nested/src/editors/list/nav.rs
+++ b/nested/src/editors/list/nav.rs
@@ -249,10 +249,15 @@ impl TreeNav for ListEditor {
                 // nested
 
                 if cur.tree_addr[0] < self.data.len() as isize {
-                    match self.data
-                        .get_mut(cur.tree_addr[0] as usize)
-                        .write().unwrap()
-                        .goby(direction)
+
+                    let cur_item = self.data
+                        .get_mut(cur.tree_addr[0] as usize);
+
+                    let result = cur_item.write().unwrap().goby(direction);
+
+                    drop(cur_item);
+                    
+                    match result
                     {
                         TreeNavResult::Exit => {
                             if direction.y < 0 {