diff --git a/src/main.rs b/src/main.rs
index 08ee04a..1991d81 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -31,7 +31,11 @@ fn list<P: Fn(&trash::TrashItem) -> bool>(predicate: P) -> Vec<trash::TrashItem>
 fn print_list(path: Option<PathBuf>) {
     let predicate: Box<dyn Fn(&trash::TrashItem) -> bool> = match &path {
         Some(p) => Box::new(|item| {
-            *p.canonicalize().unwrap() == item.original_parent.canonicalize().unwrap()
+            let orig = match item.original_parent.canonicalize() {
+                Ok(p) => p,
+                Err(_) => item.original_parent.clone(),
+            };
+            *p.canonicalize().unwrap() == orig
         }),
         None => Box::new(|_| true),
     };