diff --git a/src/couch_index_merger/src/couch_httpd_view_merger.erl b/src/couch_index_merger/src/couch_httpd_view_merger.erl
index 9597cb3..1715632 100644
--- a/src/couch_index_merger/src/couch_httpd_view_merger.erl
+++ b/src/couch_index_merger/src/couch_httpd_view_merger.erl
@@ -370,13 +370,16 @@ parse_view_name(Name) ->
         {nil, nil, <<"_all_docs">>};
     [DDocName, ViewName0] ->
         {nil, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
-    ["_design", DDocName, ViewName0] ->
+    ["_design", DDocName0, ViewName0] ->
+        DDocName = couch_httpd:unquote(DDocName0),
         {nil, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
-    [DDocDbName1, DDocName, ViewName0] ->
+    [DDocDbName1, DDocName0, ViewName0] ->
         DDocDbName = ?l2b(couch_httpd:unquote(DDocDbName1)),
+        DDocName = couch_httpd:unquote(DDocName0),
         {DDocDbName, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
-    [DDocDbName1, "_design", DDocName, ViewName0] ->
+    [DDocDbName1, "_design", DDocName0, ViewName0] ->
         DDocDbName = ?l2b(couch_httpd:unquote(DDocDbName1)),
+        DDocName = couch_httpd:unquote(DDocName0),
         {DDocDbName, <<"_design/", (?l2b(DDocName))/binary>>, ?l2b(ViewName0)};
     _ ->
         throw({bad_request, "A `view` property must have the shape"
diff --git a/src/couch_index_merger/src/couch_view_merger.erl b/src/couch_index_merger/src/couch_view_merger.erl
index 2f04c7a..4c10678 100644
--- a/src/couch_index_merger/src/couch_view_merger.erl
+++ b/src/couch_index_merger/src/couch_view_merger.erl
@@ -208,7 +208,7 @@ http_index_folder_req_details(#simple_index_spec{} = IndexSpec, MergeParams, _DD
     <<"_all_docs">> ->
         "_all_docs";
     _ ->
-        ?b2l(DDocId) ++ "/_view/" ++ ?b2l(ViewName)
+        couch_httpd:quote(DDocId) ++ "/_view/" ++ couch_httpd:quote(ViewName)
     end ++ view_qs(ViewArgs, MergeParams),
     put(from_url, DbUrl),
     case Keys of