At the C level, PyDict_Update(old, new) is just a shortcut for override=1 PyDict_Merge(old, new, override) C extensions can use PyDict_Merge directly with override=0, which keeps the current value in case of duplicate keys. Python code can only use update, which means that override is always true. Is there a good reason this? -jJ