diff --git a/6.1.22/patches/01_rename_list_no_pending.patch b/6.1.22/patches/01_rename_list_no_pending.patch
new file mode 100644
index 0000000000000000000000000000000000000000..33c1e9d5f7c4c709a18a4ddcd0e5031185af3dc5
--- /dev/null
+++ b/6.1.22/patches/01_rename_list_no_pending.patch
@@ -0,0 +1,56 @@
+diff --git a/sympa-6.1.15-src/src/lib/admin.pm b/sympa-6.1.15-src/src/lib/admin.pm
+index c94de08..1bcaebf 100644
+--- a/sympa-6.1.15-src/src/lib/admin.pm
++++ b/sympa-6.1.15-src/src/lib/admin.pm
+@@ -817,16 +817,16 @@ sub rename_list{
+      }
+ 
+     # set list status to pending if creation list is moderated
+-    if ($r_action =~ /listmaster/) {
+-      $list->{'admin'}{'status'} = 'pending' ;
+-      &List::send_notify_to_listmaster('request_list_renaming',$list->{'domain'}, 
+-				       {'list' => $list,
+-					'new_listname' => $param{'new_listname'},
+-					'old_listname' => $old_listname,
+-					'email' => $param{'user_email'},
+-					'mode' => $param{'mode'}});
+-      $param{'status'} = 'pending';
+-    }
++#    if ($r_action =~ /listmaster/) {
++#      $list->{'admin'}{'status'} = 'pending' ;
++#      &List::send_notify_to_listmaster('request_list_renaming',$list->{'domain'}, 
++#				       {'list' => $list,
++#					'new_listname' => $param{'new_listname'},
++#					'old_listname' => $old_listname,
++#					'email' => $param{'user_email'},
++#					'mode' => $param{'mode'}});
++#      $param{'status'} = 'pending';
++#    }
+      
+     ## Save config file for the new() later to reload it
+     $list->save_config($param{'user_email'});
+diff --git a/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in b/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
+index ee66620..fe1d7c2 100644
+--- a/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
++++ b/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
+@@ -10433,6 +10433,7 @@ sub do_rename_list {
+ 				      remote_addr => $param->{'remote_addr'},
+ 				      aliases => $param->{'aliases'},
+ 				      status => $param->{'status'},
++                                      skip_authz => 1,
+ 				     );
+      
+      if ($result eq 'incorrect_listname') {       
+@@ -10493,9 +10494,9 @@ sub do_rename_list {
+      }
+      
+      # set list status to pending if creation list is moderated
+-     if ($param->{'status'} eq 'pending') {
+-	 &report::notice_report_web('pending_list',{},$param->{'action'},$list);
+-     }
++#     if ($param->{'status'} eq 'pending') {
++#	 &report::notice_report_web('pending_list',{},$param->{'action'},$list);
++#     }
+      
+      if ($in{'new_robot'} eq '$robot') {
+ 	 $param->{'redirect_to'} = "$param->{'base_url'}$param->{'path_cgi'}/admin/$in{'new_listname'}";
diff --git a/6.1.22/patches/02_disable_copy_list b/6.1.22/patches/02_disable_copy_list
new file mode 100644
index 0000000000000000000000000000000000000000..e2ebad04032fc8a8f68b831aadf13c4a28916bfc
--- /dev/null
+++ b/6.1.22/patches/02_disable_copy_list
@@ -0,0 +1,16 @@
+diff --git a/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in b/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
+index fe1d7c2..ff0d545 100644
+--- a/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
++++ b/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
+@@ -10409,7 +10409,10 @@ sub _restrict_values {
+ 
+ sub do_copy_list {
+     &wwslog('info', 'do_copy_list(%s,%s)', $in{'new_listname'}, $in{'new_robot'});
+-    &do_rename_list('copy');
++    # mysteriously reject copy list requests - this needs a real solution
++    &report::reject_report_web('intern','Unable_to_copy_list', {'new_listname' => $in{'new_listname'}},
++                                  $param->{'action'},$list,$param->{'user'}{'email'},$robot);
++    return undef;
+ }
+ 
+ # in order to rename a list you must be list owner and you must be allowed to create new list
diff --git a/6.1.22/patches/03_disable_latest_and_active_lists b/6.1.22/patches/03_disable_latest_and_active_lists
new file mode 100644
index 0000000000000000000000000000000000000000..18d34511c92ffcc1a7af4cd3781a18ad5d5eb924
--- /dev/null
+++ b/6.1.22/patches/03_disable_latest_and_active_lists
@@ -0,0 +1,29 @@
+commit d42aa14044e13f5efcf4b4dfe4d2db08365bfad0
+Author: k clair <kclair@riseup.net>
+Date:   Mon Nov 12 10:53:08 2012 -0800
+
+    disable listing of latest and active lists.
+
+diff --git a/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in b/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
+index ff0d545..ce6d199 100644
+--- a/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
++++ b/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
+@@ -4070,6 +4070,9 @@ sub do_renewpasswd {
+  ## The list of latest created lists
+  sub do_latest_lists {
+      &wwslog('info', "do_latest_lists($in{'for'}, $in{'count'},$in{'topic'}, $in{'subtopic'})");
++     # should try to actually fix this one day
++     return 0;
++
+ 
+      unless (&do_lists()) {
+ 	 &wwslog('err','do_latest_lists: error while calling do_lists');
+@@ -4130,6 +4133,8 @@ sub do_renewpasswd {
+  ## The list of the most active lists
+  sub do_active_lists {
+      &wwslog('info', "do_active_lists($in{'for'}, $in{'count'},$in{'topic'}, $in{'subtopic'})");
++     # should try to actually fix this one day
++     return 0;
+ 
+      unless (&do_lists()) {
+ 	 &wwslog('err','do_active_lists: error while calling do_lists');
diff --git a/6.1.22/patches/04_fix_search_list.patch b/6.1.22/patches/04_fix_search_list.patch
new file mode 100644
index 0000000000000000000000000000000000000000..9d7ef00962dc316f7ab21b9ae10fe2d838002a95
--- /dev/null
+++ b/6.1.22/patches/04_fix_search_list.patch
@@ -0,0 +1,14 @@
+--- a/sympa-6.1.14-src/wwsympa/wwsympa.fcgi.in
++++ b/sympa-6.1.14-src/wwsympa/wwsympa.fcgi.in
+@@ -9105,7 +9105,10 @@ Sends back the list creation edition form.
+ 
+      ## Members list
+      my $record = 0;
+-     my $all_lists = &List::get_lists($robot);
++     my $regexp = $param->{'regexp'};
++     my $statement = sprintf "name_list RLIKE '%s' OR subject_list RLIKE '%s'", $regexp, $regexp;
++     my @lists = &List::get_lists_db($statement) || undef;
++     my $all_lists = &List::get_lists($robot, undef, @lists);
+      foreach my $list ( @$all_lists ) {
+ 	 my $is_admin;
+ 	 ## Search filter
diff --git a/6.1.22/patches/05_fix_pending_lists.patch b/6.1.22/patches/05_fix_pending_lists.patch
new file mode 100644
index 0000000000000000000000000000000000000000..33e486f165a3b00eb7d9f67b133e1f4c078dda39
--- /dev/null
+++ b/6.1.22/patches/05_fix_pending_lists.patch
@@ -0,0 +1,17 @@
+--- a/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
++++ b/sympa-6.1.15-src/wwsympa/wwsympa.fcgi.in
+@@ -8215,8 +8215,12 @@ sub do_get_pending_lists {
+      ## Checking families and other virtual hosts.
+      &get_server_details();
+ 
+-    my $all_lists = &List::get_lists($robot,
+-				     { 'filter_query' => [ 'status' => 'pending' ] });
++#    my $all_lists = &List::get_lists($robot,
++#				     { 'filter_query' => [ 'status' => 'pending' ] });
++     my $statement = "status_list = 'pending'";
++     my @lists = &List::get_lists_db($statement);
++     my $all_lists = &List::get_lists($robot, undef, @lists);
++
+     foreach my $list ( @$all_lists ) {
+ 	$param->{'pending'}{$list->{'name'}}{'subject'} = $list->{'admin'}{'subject'};
+ 	$param->{'pending'}{$list->{'name'}}{'by'} = $list->{'admin'}{'creation'}{'email'};
diff --git a/6.1.22/patches/README b/6.1.22/patches/README
new file mode 100644
index 0000000000000000000000000000000000000000..051bc350d52961ce79cde025c6877a85d3095102
--- /dev/null
+++ b/6.1.22/patches/README
@@ -0,0 +1,31 @@
+Patches
+========
+
+01_rename_lists_no_pending
+--------------------------
+prevents lists going in to 'pending' status if they are renamed.
+https://labs.riseup.net/code/issues/4066
+
+02_disable_copy_list
+--------------------
+disables the ability to copy an existing list at the perl library level. this is also done on the 
+template level (which is not included in this patch).
+https://labs.riseup.net/code/projects/lists/activity?from=2012-10-05
+
+03_disable_latest_and_active_lists
+-----------------------------------
+rss requests to active_lists and latest_lists crash wwsympa. disable for now (should make a real patch one day)
+
+04_fix_search_list.patch
+---------------------------
+patches do_search_list so that it calls get_lists_db directly with SQL conditions to limit the number of lists that get_lists has to loop through.
+TODO: need to file a bug for this.
+
+05_disable_latest_and_active_lists.patch
+-----------------------------------------
+we still need to disable listing of latest and active lists, since these operations still time out.
+TODO; need to file a bug for this and press the issue upstream
+
+06_fix_pending_lists.patch
+----------------------------
+do_get_pending_lists in wwsympa.fcgi needs to be patched to pre-select all lists with status 'pending', and then it can pass those lists to get_lists.