diff --git a/src/data.rs b/src/data.rs
index 19faa4b0b7d184aaf5c8fb895cc4d3a59044660a..1a8bc5a4566679b364336c2c84971c286ded66ad 100644
--- a/src/data.rs
+++ b/src/data.rs
@@ -241,13 +241,13 @@ fn load_layout_data_with_fallback(
         .map(PathBuf::from)
         .or_else(|| xdg::data_path("squeekboard/keyboards"));
     
-    let str_path=path.into_os_string().into_string();
+    let mut variant_path = PathBuf::new(path);
     match variant {
-        ::data::ContentPurpose::Terminal => str_path.push_str("/terminal"), // terminal specific layouts
+        ::data::ContentPurpose::Terminal => variant_path.push("/terminal"), // terminal specific layouts
     }
     
-    let full_path=PathBuf::from(str_path);
-    for (kind, source) in list_layout_sources(name, kind, serde::export::Some(full_path)) {
+    //let full_path=PathBuf::from(variant_path);serde::export::Some(full_path)
+    for (kind, source) in list_layout_sources(name, kind, variant_path) {
         let layout = load_layout_data(source.clone());
         match layout {
             Err(e) => match (e, source) {