saltstack/salt — pull request #5087 by s0undt3ch (2013-05-17 10:59:16+00:00)
Title: Handle lower msgpack versions which can't handle `OrderedDict`'s.

Dictionary subclasses were only added to msgpack after 0.2.0(inclusive).
Since `isinstance(OrderedDict(), dict)` returns true, of course, msgpack's custom type handling cannot be used.
The solution is to iterate through the data and convert `OrderedDict`'s to `dict`'s since that's what msgpack also does.
For now, the iteration is a top level one, ie, only first child descendants are evaluated. We won't go deeper unless we get the same failure a little deeper in the nested data.