On line 625 of traversal.py, pyramid.traversal.ResourceTreeTraverser quotes the path segments produced by route matching. However, it then passes them to pyramid.traversal.traversal_path_info (on line 663), but that function assumes that the path has already been decoded. The result is that the application can wind up getting quoted keys when it expects unquoted keys during traversal.
This problem is present in both 1.3a1 and 1.2.2 through 1.2.4 (where it was introduced with the fix for issue #349).
This has been fixed on the 1.2 branch at:
And on the 1.3 branch at: