Index: subversion/bindings/swig/core.i =================================================================== --- subversion/bindings/swig/core.i (revision 16478) +++ subversion/bindings/swig/core.i (working copy) @@ -638,8 +638,7 @@ /* Theoretically, we should be checking for errors from these calls, but I do not know of any useful way to signal an error to Python from within a module initialization function. */ -apr_initialize(); -atexit(apr_terminate); +svn_swig_py_initialize(); /* This is a hack. I dunno if we can count on SWIG calling the module "m" */ PyModule_AddObject(m, "SubversionException", Index: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c =================================================================== --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (revision 16479) +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (working copy) @@ -110,6 +110,15 @@ static char emptyTuple[] = "()"; static char objectTuple[] = "(O)"; +/* Initialize the libsvn_swig_py library */ +apr_status_t svn_swig_py_initialize(void) +{ + apr_status_t status = apr_initialize(); + if (status == APR_SUCCESS) { + atexit(apr_terminate); + } + return status; +} /* Set the application pool */ void svn_swig_py_set_application_pool(PyObject *py_pool, apr_pool_t *pool) Index: subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h =================================================================== --- subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (revision 16479) +++ subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (working copy) @@ -61,6 +61,10 @@ /*** Automatic Pool Management Functions ***/ +/* Initialize the libsvn_swig_py library */ +SVN_SWIG_SWIGUTIL_EXPORT +apr_status_t svn_swig_py_initialize(void); + /* Set the application pool */ SVN_SWIG_SWIGUTIL_EXPORT void svn_swig_py_set_application_pool(PyObject *py_pool, apr_pool_t *pool);