diff --git a/factory.py b/factory.py
index <HASH>..<HASH> 100644
--- a/factory.py
+++ b/factory.py
@@ -20,6 +20,7 @@
 
 import os
 import sys
+import urllib
 import warnings
 
 from flask import Blueprint
@@ -72,7 +73,9 @@ class WSGIScriptAliasFix(object):
     def __call__(self, environ, start_response):
         """Parse path from ``REQUEST_URI`` to fix ``PATH_INFO``."""
         if environ.get('WSGI_SCRIPT_ALIAS') == environ['SCRIPT_NAME']:
-            path_info = urlparse(environ.get('REQUEST_URI')).path
+            path_info = urllib.unquote_plus(
+                urlparse(environ.get('REQUEST_URI')).path
+            )  # addresses issue with url encoded arguments in Flask routes
             environ['SCRIPT_NAME'] = ''
             environ['PATH_INFO'] = path_info
         return self.app(environ, start_response)
base: fix for wsgi PATH_INFO handling

* Addresses issue with url encoded arguments in Flask routes. E.g. for
  route `/collection/<name>` the view argument `name` was not unescaped
  when accessed by `/collection/Books%<I>%<I>%<I>Reports` on Apache and
  this led to error during lookup in database.  (closes #<I>)