diff --git a/CHANGELOG b/CHANGELOG
index ec6246a068104074babc13aea373e93f966cc17f..61047145f1a7dc001aae684d338934c4372f4d6c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -29,6 +29,7 @@ v 8.11.0 (unreleased)
   - Fix CI status icon link underline (ClemMakesApps)
   - The Repository class is now instrumented
   - Fix commit mention font inconsistency (ClemMakesApps)
+  - Do not escape URI when extracting path !5878 (winniehell)
   - Fix filter label tooltip HTML rendering (ClemMakesApps)
   - Cache the commit author in RequestStore to avoid extra lookups in PostReceive
   - Expand commit message width in repo view (ClemMakesApps)
diff --git a/lib/extracts_path.rb b/lib/extracts_path.rb
index 84688f6646eb849c0e84ee097491404249d63c42..a293fa2752f8ab7878d4cfb7c358049f2b649247 100644
--- a/lib/extracts_path.rb
+++ b/lib/extracts_path.rb
@@ -94,7 +94,9 @@ module ExtractsPath
     @options = params.select {|key, value| allowed_options.include?(key) && !value.blank? }
     @options = HashWithIndifferentAccess.new(@options)
 
-    @id = Addressable::URI.normalize_component(get_id)
+    @id = params[:id] || params[:ref]
+    @id += "/" + params[:path] unless params[:path].blank?
+
     @ref, @path = extract_ref(@id)
     @repo = @project.repository
     if @options[:extended_sha1].blank?
@@ -116,12 +118,4 @@ module ExtractsPath
   def tree
     @tree ||= @repo.tree(@commit.id, @path)
   end
-
-  private
-
-  def get_id
-    id = params[:id] || params[:ref]
-    id += "/" + params[:path] unless params[:path].blank?
-    id
-  end
 end
diff --git a/spec/lib/extracts_path_spec.rb b/spec/lib/extracts_path_spec.rb
index 1d08daee059ec90c2b5262406f3ae30d82077dbb..86d04ecfa36b0777b2ec5da99ecabdf53ba7381e 100644
--- a/spec/lib/extracts_path_spec.rb
+++ b/spec/lib/extracts_path_spec.rb
@@ -30,17 +30,6 @@ describe ExtractsPath, lib: true do
       expect(@logs_path).to eq("/#{@project.path_with_namespace}/refs/#{ref}/logs_tree/files/ruby/popen.rb")
     end
 
-    context 'escaped slash character in ref' do
-      let(:ref) { 'improve%2Fawesome' }
-
-      it 'has no escape sequences in @ref or @logs_path' do
-        assign_ref_vars
-
-        expect(@ref).to eq('improve/awesome')
-        expect(@logs_path).to eq("/#{@project.path_with_namespace}/refs/#{ref}/logs_tree/files/ruby/popen.rb")
-      end
-    end
-
     context 'ref contains %20' do
       let(:ref) { 'foo%20bar' }