diff --git a/src/wrap.c b/src/wrap.c
index 18dfa71b1d6612f52a5818d841ae39a74ca5bf7e..9ad4d8b01bc97dcc38aa210b4089dc0ffb70bee8 100644
--- a/src/wrap.c
+++ b/src/wrap.c
@@ -236,6 +236,7 @@ bind_and_propagate_from_environ (const char *variable,
                                  FlatpakBwrap *bwrap)
 {
   g_autofree gchar *value_host = NULL;
+  g_autofree gchar *canon = NULL;
   const char *value = g_getenv (variable);
 
   if (value == NULL)
@@ -248,7 +249,8 @@ bind_and_propagate_from_environ (const char *variable,
       return;
     }
 
-  value_host = pv_current_namespace_path_to_host_path (value);
+  canon = g_canonicalize_filename (value, NULL);
+  value_host = pv_current_namespace_path_to_host_path (canon);
 
   g_debug ("Bind-mounting %s=\"%s\" from the current env as %s=\"%s\" in the host",
            variable, value, variable, value_host);