Why is this change necessary? A reduced test case suggests it should work without the `list` invocation:

    $ python3
    Python 3.3.2 (default, Sep  6 2013, 09:30:10)
    [GCC 4.8.1 20130725 (prerelease)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> d = { "foo": "hello", "bar": "world" }
    >>> for key, value in d.items():
    ...   print("%s: %s" % (key, value))
    ...
    foo: hello
    bar: world
    >>> for key in d.keys():
    ...   print(key)
    ...
    foo
    bar

Anything I'm missing? (If so, please excuse my ignorance.)