Here's a patch. It was just a matter of calling a different function.
Index: modules/mappers/mod_negotiation.c
===================================================================
--- modules/mappers/mod_negotiation.c.orig
+++ modules/mappers/mod_negotiation.c
@@ -2791,7 +2791,7 @@ static int setup_choice_response(request
}
apr_table_setn(r->err_headers_out, "Content-Location",
- ap_escape_path_segment(r->pool, variant->file_name));
+ ap_os_escape_path(r->pool, variant->file_name, 0));
set_neg_headers(r, neg, alg_choice); /* add Alternates and Vary */