Index: subversion/bindings/swig/svn_client.i
===================================================================
--- subversion/bindings/swig/svn_client.i	(revision 24525)
+++ subversion/bindings/swig/svn_client.i	(working copy)
@@ -322,6 +322,7 @@
 %ignore svn_client_copy_source_t::peg_revision;
 
 %ignore svn_client_remove_from_changelist;
+%ignore svn_client_commit4;
 #endif
 
 %include svn_client_h.swg
@@ -329,16 +330,29 @@
 #ifdef SWIGRUBY
 %header %{
 #define _svn_client_remove_from_changelist svn_client_remove_from_changelist
+#define _svn_client_commit4 svn_client_commit4
 %}
 %rename(svn_client_remove_from_changelist) _svn_client_remove_from_changelist;
+%rename(svn_client_commit4) _svn_client_commit4;
 %apply const char *MAY_BE_NULL {
-  const char *removed_changelist
+  const char *removed_changelist,
+  const char *changelist_name_may_be_null
 }
 svn_error_t *
 _svn_client_remove_from_changelist(const apr_array_header_t *paths,
                                    const char *removed_changelist,
                                    svn_client_ctx_t *ctx,
                                    apr_pool_t *pool);
+
+svn_error_t *
+_svn_client_commit4(svn_commit_info_t **commit_info_p,
+                    const apr_array_header_t *targets,
+                    svn_boolean_t recurse,
+                    svn_boolean_t keep_locks,
+                    svn_boolean_t keep_changelist,
+                    const char *changelist_name_may_be_null,
+                    svn_client_ctx_t *ctx,
+                    apr_pool_t *pool);
 #endif
 
 #ifdef SWIGPYTHON
