I am running Python 2.7.1 under Valgrind 3.6.1 on a x86_64 GNU/Linux box. Valgrind is flagging errors that are not covered by the standard suppressions file (Misc/valgrind-python.supp; after uncommenting the part I'm supposed to), e.g.: ==5804== Use of uninitialised value of size 8 ==5804== at 0x4EBA956: PyObject_Free (obmalloc.c:958) ==5804== by 0x4E85D65: code_dealloc (codeobject.c:317) ==5804== by 0x4ECE23C: tupledealloc (tupleobject.c:220) ==5804== by 0x4E85E42: code_dealloc (codeobject.c:308) ==5804== by 0x4F3315D: load_source_module (import.c:1022) ==5804== by 0x4F33F7E: import_submodule (import.c:2596) ==5804== by 0x4F3420E: load_next (import.c:2416) ==5804== by 0x4F3484F: import_module_level (import.c:2137) ==5804== by 0x4F34DA3: PyImport_ImportModuleLevel (import.c:2189) ==5804== by 0x4F16ABE: builtin___import__ (bltinmodule.c:49) ==5804== by 0x4E6DA42: PyObject_Call (abstract.c:2529) ==5804== by 0x4F16F82: PyEval_CallObjectWithKeywords (ceval.c:3881) ==5804== Use of uninitialised value of size 8 ==5804== at 0x4EBA956: PyObject_Free (obmalloc.c:958) ==5804== by 0x4E85D65: code_dealloc (codeobject.c:317) ==5804== by 0x4F3315D: load_source_module (import.c:1022) ==5804== by 0x4F33F7E: import_submodule (import.c:2596) ==5804== by 0x4F3420E: load_next (import.c:2416) ==5804== by 0x4F3484F: import_module_level (import.c:2137) ==5804== by 0x4F34DA3: PyImport_ImportModuleLevel (import.c:2189) ==5804== by 0x4F16ABE: builtin___import__ (bltinmodule.c:49) ==5804== by 0x4E6DA42: PyObject_Call (abstract.c:2529) ==5804== by 0x4F16F82: PyEval_CallObjectWithKeywords (ceval.c:3881) ==5804== by 0x4F1ACD3: PyEval_EvalFrameEx (ceval.c:2332) ==5804== by 0x4F1F347: PyEval_EvalCodeEx (ceval.c:3252) etc. Perhaps the suppressions file covers only 32-bit machines, because if I add: { ADDRESS_IN_RANGE/Use of uninitialised value of size 8 Memcheck:Addr8 fun:PyObject_Free } { ADDRESS_IN_RANGE/Use of uninitialised value of size 8 Memcheck:Value8 fun:PyObject_Free } { ADDRESS_IN_RANGE/Use of uninitialised value of size 8 Memcheck:Addr8 fun:PyObject_Realloc } { ADDRESS_IN_RANGE/Use of uninitialised value of size 8 Memcheck:Value8 fun:PyObject_Realloc } (i.e., "Value8" instead of "Value4") then all is clear.