diff --git a/Bugzilla/Auth/CVS/Entries b/Bugzilla/Auth/CVS/Entries
index 0e723439d5016af94a16310789d81da7719ccb5d..29c419478417de01b6c4acf5a79af32762fc3f4b 100644
--- a/Bugzilla/Auth/CVS/Entries
+++ b/Bugzilla/Auth/CVS/Entries
@@ -1,5 +1,5 @@
-/CGI.pm/1.4/Sun Sep 14 06:05:21 2003//TBUGZILLA-2_17_5
-/Cookie.pm/1.1/Sat Mar 22 04:47:18 2003//TBUGZILLA-2_17_5
-/DB.pm/1.3/Sun Oct 26 05:43:29 2003//TBUGZILLA-2_17_5
-/LDAP.pm/1.4/Mon Jul 14 13:35:12 2003//TBUGZILLA-2_17_5
+/CGI.pm/1.4/Sun Sep 14 06:05:21 2003//TBUGZILLA-2_17_6
+/Cookie.pm/1.1/Sat Mar 22 04:47:18 2003//TBUGZILLA-2_17_6
+/DB.pm/1.3/Sun Oct 26 05:43:29 2003//TBUGZILLA-2_17_6
+/LDAP.pm/1.4/Mon Jul 14 13:35:12 2003//TBUGZILLA-2_17_6
 D
diff --git a/Bugzilla/Auth/CVS/Tag b/Bugzilla/Auth/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/Bugzilla/Auth/CVS/Tag
+++ b/Bugzilla/Auth/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/Bugzilla/CVS/Entries b/Bugzilla/CVS/Entries
index 1a9f45262ce93f3e9003d2e4416da94425d8468b..350e43aa188f27d3237187ef16f70d329ddf9076 100644
--- a/Bugzilla/CVS/Entries
+++ b/Bugzilla/CVS/Entries
@@ -1,18 +1,18 @@
-/.cvsignore/1.1/Mon Aug 26 22:24:55 2002//TBUGZILLA-2_17_5
-/Auth.pm/1.2/Sat Oct 18 22:46:22 2003//TBUGZILLA-2_17_5
-/BugMail.pm/1.7/Thu Aug 14 17:49:08 2003//TBUGZILLA-2_17_5
-/CGI.pm/1.6/Fri May  9 02:32:21 2003//TBUGZILLA-2_17_5
-/Chart.pm/1.1/Wed Jun 25 23:23:10 2003//TBUGZILLA-2_17_5
-/Config.pm/1.16/Mon Nov  3 03:33:36 2003//TBUGZILLA-2_17_5
-/Constants.pm/1.3/Mon May  5 01:15:34 2003//TBUGZILLA-2_17_5
-/DB.pm/1.8/Sat Mar 22 04:47:15 2003//TBUGZILLA-2_17_5
-/Error.pm/1.4/Sun Sep 14 06:05:10 2003//TBUGZILLA-2_17_5
-/Flag.pm/1.14/Sat Oct 25 01:34:33 2003//TBUGZILLA-2_17_5
-/FlagType.pm/1.4/Sun Sep 14 06:05:10 2003//TBUGZILLA-2_17_5
-/Search.pm/1.47/Sun Nov  2 15:22:42 2003//TBUGZILLA-2_17_5
-/Series.pm/1.1/Wed Jun 25 23:23:10 2003//TBUGZILLA-2_17_5
-/Template.pm/1.12/Wed Sep 17 22:12:56 2003//TBUGZILLA-2_17_5
-/User.pm/1.16/Sun Sep 14 06:05:10 2003//TBUGZILLA-2_17_5
-/Util.pm/1.11/Fri Aug 22 13:55:16 2003//TBUGZILLA-2_17_5
+/.cvsignore/1.1/Mon Aug 26 22:24:55 2002//TBUGZILLA-2_17_6
+/Auth.pm/1.2/Sat Oct 18 22:46:22 2003//TBUGZILLA-2_17_6
+/BugMail.pm/1.7/Thu Aug 14 17:49:08 2003//TBUGZILLA-2_17_6
+/CGI.pm/1.6/Fri May  9 02:32:21 2003//TBUGZILLA-2_17_6
+/Chart.pm/1.2/Sat Nov  8 00:27:43 2003//TBUGZILLA-2_17_6
+/Config.pm/1.17/Mon Nov 10 03:56:38 2003//TBUGZILLA-2_17_6
+/Constants.pm/1.3/Mon May  5 01:15:34 2003//TBUGZILLA-2_17_6
+/DB.pm/1.8/Sat Mar 22 04:47:15 2003//TBUGZILLA-2_17_6
+/Error.pm/1.4/Sun Sep 14 06:05:10 2003//TBUGZILLA-2_17_6
+/Flag.pm/1.14/Sat Oct 25 01:34:33 2003//TBUGZILLA-2_17_6
+/FlagType.pm/1.4/Sun Sep 14 06:05:10 2003//TBUGZILLA-2_17_6
+/Search.pm/1.47/Sun Nov  2 15:22:42 2003//TBUGZILLA-2_17_6
+/Series.pm/1.2/Sat Nov  8 00:25:21 2003//TBUGZILLA-2_17_6
+/Template.pm/1.12/Wed Sep 17 22:12:56 2003//TBUGZILLA-2_17_6
+/User.pm/1.16/Sun Sep 14 06:05:10 2003//TBUGZILLA-2_17_6
+/Util.pm/1.11/Fri Aug 22 13:55:16 2003//TBUGZILLA-2_17_6
 D/Auth////
 D/Template////
diff --git a/Bugzilla/CVS/Tag b/Bugzilla/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/Bugzilla/CVS/Tag
+++ b/Bugzilla/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/Bugzilla/Chart.pm b/Bugzilla/Chart.pm
index 03b5e4173ae0a012e2b91190c6e4872244424298..8d3d9f643d123b4a91365325f2c2d500bc704e3b 100644
--- a/Bugzilla/Chart.pm
+++ b/Bugzilla/Chart.pm
@@ -93,7 +93,7 @@ sub init {
     foreach my $date ('datefrom', 'dateto') {
         if ($self->{$date}) {
             $self->{$date} = &::str2time($self->{$date}) 
-              || ThrowUserError("illegal_date", { date => $self->{$date}});
+              || &::ThrowUserError("illegal_date", { date => $self->{$date}});
         }
     }
 
diff --git a/Bugzilla/Config.pm b/Bugzilla/Config.pm
index 7e2cb513f81c3514488d694138febd49d0b7c5a9..f0d64e5acec9f54e4cbe43b8fafda1c437f8261f 100644
--- a/Bugzilla/Config.pm
+++ b/Bugzilla/Config.pm
@@ -51,7 +51,7 @@ use Bugzilla::Util;
 Exporter::export_ok_tags('admin', 'db');
 
 # Bugzilla version
-$Bugzilla::Config::VERSION = "2.17.5";
+$Bugzilla::Config::VERSION = "2.17.6";
 
 use Safe;
 
diff --git a/Bugzilla/Series.pm b/Bugzilla/Series.pm
index bc11389c92c92ec86c33c3233cef00d904a199f6..cb4d52c024c20f06fc6ab82702f7a957b500dfff 100644
--- a/Bugzilla/Series.pm
+++ b/Bugzilla/Series.pm
@@ -39,17 +39,22 @@ sub new {
 
     if ($#_ == 0) {
         if (ref($_[0])) {
-            # We've been given a CGI object
+            # We've been given a CGI object to create a new Series from.
             $self->readParametersFromCGI($_[0]);
             $self->createInDatabase();
         }
         else {
-            # We've been given a series_id.
+            # We've been given a series_id, which should represent an existing
+            # Series.
             $self->initFromDatabase($_[0]);
         }
     }
-    elsif ($#_ >= 3) {
-        $self->initFromParameters(@_);
+    elsif ($#_ == 6) {
+        # We've been given a load of parameters to create a new Series from.
+        # We don't get given a series_id; we generate that for ourselves
+        # when we call createInDatabase(). So we pass -1 here.
+        $self->initFromParameters(-1, @_);
+        $self->createInDatabase();
     }
     else {
         die("Bad parameters passed in - invalid number of args \($#_\)($_)");
@@ -77,7 +82,11 @@ sub initFromDatabase {
         "WHERE series.series_id = $series_id");
     
     if (@series) {
+        # Note that we calculate $self->{'public'} ourselves instead of passing
+        # it as the last parameter in @series; this is because isSubscribed()
+        # requires the rest of the object to be set up correctly.
         $self->initFromParameters(@series);
+        $self->{'public'} = $self->isSubscribed(0);
     }
     else {
         &::ThrowCodeError("invalid_series_id", { 'series_id' => $series_id });
@@ -87,14 +96,9 @@ sub initFromDatabase {
 sub initFromParameters {
     my $self = shift;
 
-    # The first four parameters are compulsory, unless you immediately call
-    # createInDatabase(), in which case series_id can be left off.
     ($self->{'series_id'}, $self->{'category'},  $self->{'subcategory'},
      $self->{'name'}, $self->{'creator'}, $self->{'frequency'},
-                                                        $self->{'query'}) = @_;
-
-    $self->{'public'} = $self->isSubscribed(0);
-    $self->{'subscribed'} = $self->isSubscribed($::userid);
+     $self->{'query'}, $self->{'public'}) = @_;
 }
 
 sub createInDatabase {
diff --git a/Bugzilla/Template/CVS/Tag b/Bugzilla/Template/CVS/Tag
index 9850221a0eb3c0ab21c87ec0e071c7a10c0e874f..491b1813288649a9df1097f0ad97fa9f4823043d 100644
--- a/Bugzilla/Template/CVS/Tag
+++ b/Bugzilla/Template/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-2_17_5
+TBUGZILLA-2_17_6
diff --git a/Bugzilla/Template/Plugin/CVS/Entries b/Bugzilla/Template/Plugin/CVS/Entries
index 36fa4b22fd94025c32b8108c98fbc61a8db54286..ae810a6232b94d0c191b635ebb1aad39bc207795 100644
--- a/Bugzilla/Template/Plugin/CVS/Entries
+++ b/Bugzilla/Template/Plugin/CVS/Entries
@@ -1,2 +1,2 @@
-/Bugzilla.pm/1.2/Fri Feb  7 07:19:15 2003//TBUGZILLA-2_17_5
+/Bugzilla.pm/1.2/Fri Feb  7 07:19:15 2003//TBUGZILLA-2_17_6
 D
diff --git a/Bugzilla/Template/Plugin/CVS/Tag b/Bugzilla/Template/Plugin/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/Bugzilla/Template/Plugin/CVS/Tag
+++ b/Bugzilla/Template/Plugin/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/CVS/Entries b/CVS/Entries
index f552b7b6c316d47ba930e1821ca46e22777eaf8c..c201bb6d90c9611bea7c3231505d6cc7ecec2f75 100644
--- a/CVS/Entries
+++ b/CVS/Entries
@@ -1,79 +1,79 @@
-/.cvsignore/1.6/Mon May 13 22:28:26 2002//TBUGZILLA-2_17_5
-/1x1.gif/1.1/Wed Aug 26 06:14:15 1998/-kb/TBUGZILLA-2_17_5
-/Attachment.pm/1.14/Fri Apr 25 05:41:20 2003//TBUGZILLA-2_17_5
-/Bug.pm/1.33/Tue Sep  2 06:54:58 2003//TBUGZILLA-2_17_5
-/Bugzilla.pm/1.8/Sat Jun  7 13:59:24 2003//TBUGZILLA-2_17_5
-/CGI.pl/1.209/Thu Oct 30 01:31:57 2003//TBUGZILLA-2_17_5
-/QUICKSTART/1.1/Fri Oct 10 02:22:39 2003//TBUGZILLA-2_17_5
-/README/1.52/Fri Oct 10 02:22:39 2003//TBUGZILLA-2_17_5
-/RelationSet.pm/1.8/Mon Aug 26 06:16:49 2002//TBUGZILLA-2_17_5
-/Token.pm/1.20/Sun Sep 14 06:04:40 2003//TBUGZILLA-2_17_5
-/UPGRADING/1.1/Fri Aug 10 22:35:21 2001//TBUGZILLA-2_17_5
-/UPGRADING-pre-2.8/1.3/Thu Mar 27 00:06:37 2003//TBUGZILLA-2_17_5
-/ant.jpg/1.2/Wed Aug 26 22:36:05 1998/-kb/TBUGZILLA-2_17_5
-/attachment.cgi/1.48/Sun Nov  2 07:36:10 2003//TBUGZILLA-2_17_5
-/bug_status.html/1.16/Thu Oct 30 17:12:30 2003//TBUGZILLA-2_17_5
-/buglist.cgi/1.236/Sat Nov  1 20:02:47 2003//TBUGZILLA-2_17_5
-/bugwritinghelp.html/1.3/Mon Apr 15 02:47:53 2002//TBUGZILLA-2_17_5
-/bugzilla.dtd/1.8/Sun Dec 15 09:23:55 2002//TBUGZILLA-2_17_5
-/chart.cgi/1.2/Mon Jun 30 22:23:17 2003//TBUGZILLA-2_17_5
-/checksetup.pl/1.251/Thu Sep 18 12:17:15 2003//TBUGZILLA-2_17_5
-/colchange.cgi/1.36/Tue May 13 04:59:35 2003//TBUGZILLA-2_17_5
-/collectstats.pl/1.32/Sun Nov  2 15:22:41 2003//TBUGZILLA-2_17_5
-/config.cgi/1.3/Mon Jun 23 18:01:36 2003//TBUGZILLA-2_17_5
-/createaccount.cgi/1.30/Mon May  5 01:15:20 2003//TBUGZILLA-2_17_5
-/defparams.pl/1.119/Tue Sep  2 01:43:37 2003//TBUGZILLA-2_17_5
-/describecomponents.cgi/1.23/Mon Nov  3 03:25:51 2003//TBUGZILLA-2_17_5
-/describekeywords.cgi/1.11/Mon May  5 01:15:21 2003//TBUGZILLA-2_17_5
-/doeditparams.cgi/1.28/Tue Sep  2 01:47:15 2003//TBUGZILLA-2_17_5
-/duplicates.cgi/1.39/Sun Oct 26 14:01:04 2003//TBUGZILLA-2_17_5
-/duplicates.xul/1.1/Tue Nov  5 01:54:01 2002//TBUGZILLA-2_17_5
-/editcomponents.cgi/1.33/Fri Sep 26 23:47:07 2003//TBUGZILLA-2_17_5
-/editflagtypes.cgi/1.5/Mon May  5 01:15:22 2003//TBUGZILLA-2_17_5
-/editgroups.cgi/1.28/Fri Sep 26 23:47:07 2003//TBUGZILLA-2_17_5
-/editkeywords.cgi/1.16/Mon Nov  3 03:31:30 2003//TBUGZILLA-2_17_5
-/editmilestones.cgi/1.17/Thu Sep 25 19:59:44 2003//TBUGZILLA-2_17_5
-/editparams.cgi/1.20/Mon May  5 01:15:24 2003//TBUGZILLA-2_17_5
-/editproducts.cgi/1.40/Sun Oct 26 02:37:48 2003//TBUGZILLA-2_17_5
-/editusers.cgi/1.47/Fri Sep 26 23:47:07 2003//TBUGZILLA-2_17_5
-/editversions.cgi/1.17/Mon May  5 01:15:24 2003//TBUGZILLA-2_17_5
-/enter_bug.cgi/1.86/Thu Sep 11 03:54:12 2003//TBUGZILLA-2_17_5
-/globals.pl/1.249/Thu Oct 30 17:18:16 2003//TBUGZILLA-2_17_5
-/importxml.pl/1.34/Fri Jul 18 17:11:01 2003//TBUGZILLA-2_17_5
-/index.cgi/1.11/Mon May  5 01:15:27 2003//TBUGZILLA-2_17_5
-/localconfig.js/1.2/Thu Jul 17 22:49:47 2003//TBUGZILLA-2_17_5
-/long_list.cgi/1.36/Tue Aug  5 00:31:19 2003//TBUGZILLA-2_17_5
-/move.pl/1.22/Thu Oct 16 06:30:01 2003//TBUGZILLA-2_17_5
-/page.cgi/1.10/Sun Aug 24 19:46:25 2003//TBUGZILLA-2_17_5
-/post_bug.cgi/1.85/Tue Oct  7 07:02:15 2003//TBUGZILLA-2_17_5
-/process_bug.cgi/1.197/Tue Oct 28 06:37:40 2003//TBUGZILLA-2_17_5
-/productmenu.js/1.1/Sat Sep 28 18:42:29 2002//TBUGZILLA-2_17_5
-/query.cgi/1.122/Fri Oct 31 19:06:59 2003//TBUGZILLA-2_17_5
-/queryhelp.cgi/1.21/Fri Jun 13 02:50:50 2003//TBUGZILLA-2_17_5
-/quicksearch.html/1.3/Mon Apr 15 02:47:55 2002//TBUGZILLA-2_17_5
-/quicksearch.js/1.10/Sun Jan 12 08:16:03 2003//TBUGZILLA-2_17_5
-/quicksearchhack.html/1.4/Mon Apr 15 02:47:55 2002//TBUGZILLA-2_17_5
-/quips.cgi/1.21/Mon May  5 01:15:28 2003//TBUGZILLA-2_17_5
-/relogin.cgi/1.23/Tue Jun  3 09:47:43 2003//TBUGZILLA-2_17_5
-/report.cgi/1.20/Sun Sep 14 23:00:09 2003//TBUGZILLA-2_17_5
-/reports.cgi/1.68/Mon May  5 01:15:29 2003//TBUGZILLA-2_17_5
-/request.cgi/1.10/Sun Sep 14 06:04:53 2003//TBUGZILLA-2_17_5
-/robots.txt/1.2/Wed Apr 24 18:11:00 2002//TBUGZILLA-2_17_5
-/runtests.pl/1.3/Thu Mar 27 00:06:47 2003//TBUGZILLA-2_17_5
-/runtests.sh/1.7/Thu Mar 27 00:06:47 2003//TBUGZILLA-2_17_5
-/sanitycheck.cgi/1.68/Tue Sep  2 01:37:55 2003//TBUGZILLA-2_17_5
-/show_activity.cgi/1.13/Mon May  5 01:15:29 2003//TBUGZILLA-2_17_5
-/show_bug.cgi/1.25/Wed Aug 20 00:45:40 2003//TBUGZILLA-2_17_5
-/showattachment.cgi/1.14/Mon May  5 01:15:29 2003//TBUGZILLA-2_17_5
-/showdependencygraph.cgi/1.30/Sun Oct 26 05:39:18 2003//TBUGZILLA-2_17_5
-/showdependencytree.cgi/1.27/Mon May  5 01:15:30 2003//TBUGZILLA-2_17_5
-/sidebar.cgi/1.13/Tue Jun  3 09:47:44 2003//TBUGZILLA-2_17_5
-/token.cgi/1.20/Wed Sep 24 07:44:22 2003//TBUGZILLA-2_17_5
-/userprefs.cgi/1.50/Tue Jun  3 09:47:46 2003//TBUGZILLA-2_17_5
-/votehelp.html/1.10/Mon Apr 15 02:47:56 2002//TBUGZILLA-2_17_5
-/votes.cgi/1.15/Mon Nov  3 03:20:49 2003//TBUGZILLA-2_17_5
-/whineatnews.pl/1.10/Thu Mar 27 00:06:50 2003//TBUGZILLA-2_17_5
-/xml.cgi/1.12/Thu Mar 27 00:06:50 2003//TBUGZILLA-2_17_5
+/.cvsignore/1.6/Mon May 13 22:28:26 2002//TBUGZILLA-2_17_6
+/1x1.gif/1.1/Wed Aug 26 06:14:15 1998/-kb/TBUGZILLA-2_17_6
+/Attachment.pm/1.14/Fri Apr 25 05:41:20 2003//TBUGZILLA-2_17_6
+/Bug.pm/1.33/Tue Sep  2 06:54:58 2003//TBUGZILLA-2_17_6
+/Bugzilla.pm/1.8/Sat Jun  7 13:59:24 2003//TBUGZILLA-2_17_6
+/CGI.pl/1.209/Thu Oct 30 01:31:57 2003//TBUGZILLA-2_17_6
+/QUICKSTART/1.1/Fri Oct 10 02:22:39 2003//TBUGZILLA-2_17_6
+/README/1.52/Fri Oct 10 02:22:39 2003//TBUGZILLA-2_17_6
+/RelationSet.pm/1.8/Mon Aug 26 06:16:49 2002//TBUGZILLA-2_17_6
+/Token.pm/1.20/Sun Sep 14 06:04:40 2003//TBUGZILLA-2_17_6
+/UPGRADING/1.1/Fri Aug 10 22:35:21 2001//TBUGZILLA-2_17_6
+/UPGRADING-pre-2.8/1.3/Thu Mar 27 00:06:37 2003//TBUGZILLA-2_17_6
+/ant.jpg/1.2/Wed Aug 26 22:36:05 1998/-kb/TBUGZILLA-2_17_6
+/attachment.cgi/1.48/Sun Nov  2 07:36:10 2003//TBUGZILLA-2_17_6
+/bug_status.html/1.16/Thu Oct 30 17:12:30 2003//TBUGZILLA-2_17_6
+/buglist.cgi/1.238/Sat Nov  8 21:49:19 2003//TBUGZILLA-2_17_6
+/bugwritinghelp.html/1.3/Mon Apr 15 02:47:53 2002//TBUGZILLA-2_17_6
+/bugzilla.dtd/1.8/Sun Dec 15 09:23:55 2002//TBUGZILLA-2_17_6
+/chart.cgi/1.2/Mon Jun 30 22:23:17 2003//TBUGZILLA-2_17_6
+/checksetup.pl/1.252/Sat Nov  8 00:25:22 2003//TBUGZILLA-2_17_6
+/colchange.cgi/1.36/Tue May 13 04:59:35 2003//TBUGZILLA-2_17_6
+/collectstats.pl/1.32/Sun Nov  2 15:22:41 2003//TBUGZILLA-2_17_6
+/config.cgi/1.3/Mon Jun 23 18:01:36 2003//TBUGZILLA-2_17_6
+/createaccount.cgi/1.30/Mon May  5 01:15:20 2003//TBUGZILLA-2_17_6
+/defparams.pl/1.119/Tue Sep  2 01:43:37 2003//TBUGZILLA-2_17_6
+/describecomponents.cgi/1.23/Mon Nov  3 03:25:51 2003//TBUGZILLA-2_17_6
+/describekeywords.cgi/1.11/Mon May  5 01:15:21 2003//TBUGZILLA-2_17_6
+/doeditparams.cgi/1.28/Tue Sep  2 01:47:15 2003//TBUGZILLA-2_17_6
+/duplicates.cgi/1.40/Sat Nov  8 00:26:41 2003//TBUGZILLA-2_17_6
+/duplicates.xul/1.1/Tue Nov  5 01:54:01 2002//TBUGZILLA-2_17_6
+/editcomponents.cgi/1.34/Sat Nov  8 00:25:22 2003//TBUGZILLA-2_17_6
+/editflagtypes.cgi/1.5/Mon May  5 01:15:22 2003//TBUGZILLA-2_17_6
+/editgroups.cgi/1.29/Sun Nov  9 21:07:25 2003//TBUGZILLA-2_17_6
+/editkeywords.cgi/1.16/Mon Nov  3 03:31:30 2003//TBUGZILLA-2_17_6
+/editmilestones.cgi/1.17/Thu Sep 25 19:59:44 2003//TBUGZILLA-2_17_6
+/editparams.cgi/1.20/Mon May  5 01:15:24 2003//TBUGZILLA-2_17_6
+/editproducts.cgi/1.41/Sat Nov  8 00:25:22 2003//TBUGZILLA-2_17_6
+/editusers.cgi/1.47/Fri Sep 26 23:47:07 2003//TBUGZILLA-2_17_6
+/editversions.cgi/1.17/Mon May  5 01:15:24 2003//TBUGZILLA-2_17_6
+/enter_bug.cgi/1.86/Thu Sep 11 03:54:12 2003//TBUGZILLA-2_17_6
+/globals.pl/1.250/Thu Nov  6 21:55:25 2003//TBUGZILLA-2_17_6
+/importxml.pl/1.34/Fri Jul 18 17:11:01 2003//TBUGZILLA-2_17_6
+/index.cgi/1.11/Mon May  5 01:15:27 2003//TBUGZILLA-2_17_6
+/localconfig.js/1.2/Thu Jul 17 22:49:47 2003//TBUGZILLA-2_17_6
+/long_list.cgi/1.36/Tue Aug  5 00:31:19 2003//TBUGZILLA-2_17_6
+/move.pl/1.22/Thu Oct 16 06:30:01 2003//TBUGZILLA-2_17_6
+/page.cgi/1.10/Sun Aug 24 19:46:25 2003//TBUGZILLA-2_17_6
+/post_bug.cgi/1.85/Tue Oct  7 07:02:15 2003//TBUGZILLA-2_17_6
+/process_bug.cgi/1.198/Fri Nov  7 08:05:01 2003//TBUGZILLA-2_17_6
+/productmenu.js/1.1/Sat Sep 28 18:42:29 2002//TBUGZILLA-2_17_6
+/query.cgi/1.122/Fri Oct 31 19:06:59 2003//TBUGZILLA-2_17_6
+/queryhelp.cgi/1.21/Fri Jun 13 02:50:50 2003//TBUGZILLA-2_17_6
+/quicksearch.html/1.3/Mon Apr 15 02:47:55 2002//TBUGZILLA-2_17_6
+/quicksearch.js/1.10/Sun Jan 12 08:16:03 2003//TBUGZILLA-2_17_6
+/quicksearchhack.html/1.4/Mon Apr 15 02:47:55 2002//TBUGZILLA-2_17_6
+/quips.cgi/1.21/Mon May  5 01:15:28 2003//TBUGZILLA-2_17_6
+/relogin.cgi/1.23/Tue Jun  3 09:47:43 2003//TBUGZILLA-2_17_6
+/report.cgi/1.20/Sun Sep 14 23:00:09 2003//TBUGZILLA-2_17_6
+/reports.cgi/1.68/Mon May  5 01:15:29 2003//TBUGZILLA-2_17_6
+/request.cgi/1.10/Sun Sep 14 06:04:53 2003//TBUGZILLA-2_17_6
+/robots.txt/1.2/Wed Apr 24 18:11:00 2002//TBUGZILLA-2_17_6
+/runtests.pl/1.3/Thu Mar 27 00:06:47 2003//TBUGZILLA-2_17_6
+/runtests.sh/1.7/Thu Mar 27 00:06:47 2003//TBUGZILLA-2_17_6
+/sanitycheck.cgi/1.68/Tue Sep  2 01:37:55 2003//TBUGZILLA-2_17_6
+/show_activity.cgi/1.13/Mon May  5 01:15:29 2003//TBUGZILLA-2_17_6
+/show_bug.cgi/1.25/Wed Aug 20 00:45:40 2003//TBUGZILLA-2_17_6
+/showattachment.cgi/1.14/Mon May  5 01:15:29 2003//TBUGZILLA-2_17_6
+/showdependencygraph.cgi/1.30/Sun Oct 26 05:39:18 2003//TBUGZILLA-2_17_6
+/showdependencytree.cgi/1.27/Mon May  5 01:15:30 2003//TBUGZILLA-2_17_6
+/sidebar.cgi/1.13/Tue Jun  3 09:47:44 2003//TBUGZILLA-2_17_6
+/token.cgi/1.20/Wed Sep 24 07:44:22 2003//TBUGZILLA-2_17_6
+/userprefs.cgi/1.51/Sat Nov  8 21:49:19 2003//TBUGZILLA-2_17_6
+/votehelp.html/1.10/Mon Apr 15 02:47:56 2002//TBUGZILLA-2_17_6
+/votes.cgi/1.15/Mon Nov  3 03:20:49 2003//TBUGZILLA-2_17_6
+/whineatnews.pl/1.10/Thu Mar 27 00:06:50 2003//TBUGZILLA-2_17_6
+/xml.cgi/1.12/Thu Mar 27 00:06:50 2003//TBUGZILLA-2_17_6
 D/Bugzilla////
 D/contrib////
 D/css////
diff --git a/CVS/Tag b/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/CVS/Tag
+++ b/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/buglist.cgi b/buglist.cgi
index fa664c251c7e8f3bdf7d7a37061713bdba2e0d37..2183d5a790566ed108f1df3ae856de0d78abaf23 100755
--- a/buglist.cgi
+++ b/buglist.cgi
@@ -88,6 +88,16 @@ if ($::FORM{'format'} && $::FORM{'format'} eq "rdf" && !$::FORM{'ctype'}) {
     delete($::FORM{'format'});
 }
 
+# The js ctype presents a security risk; a malicious site could use it  
+# to gather information about secure bugs. So, we only allow public bugs to be
+# retrieved with this format.
+#
+# Note that if and when this call clears cookies or has other persistent 
+# effects, we'll need to do this another way instead.
+if ($::FORM{'ctype'} eq "js") {
+    Bugzilla->logout();
+}
+
 # Determine the format in which the user would like to receive the output.
 # Uses the default format if the user did not specify an output format;
 # otherwise validates the user's choice against the list of available formats.
@@ -264,7 +274,7 @@ if ($::FORM{'cmdtype'} eq "dorem" && $::FORM{'remaction'} =~ /^run/) {
 if ($::FORM{'cmdtype'} eq "dorem") {  
     if ($::FORM{'remaction'} eq "run") {
         $::buffer = LookupNamedQuery($::FORM{"namedcmd"});
-        $vars->{'title'} = "Bug List: $::FORM{'namedcmd'}";
+        $vars->{'searchname'} = $::FORM{'namedcmd'};
         $params = new Bugzilla::CGI($::buffer);
         $order = $params->param('order') || $order;
     }
@@ -274,17 +284,6 @@ if ($::FORM{'cmdtype'} eq "dorem") {
         $params = new Bugzilla::CGI($::buffer);
         $order = $params->param('order') || $order;
     }
-    elsif ($::FORM{'remaction'} eq "load") {
-        my $url = "query.cgi?" . LookupNamedQuery($::FORM{"namedcmd"});
-        print $cgi->redirect(-location=>$url);
-        # Generate and return the UI (HTML page) from the appropriate template.
-        $vars->{'message'} = "buglist_load_named_query";
-        $vars->{'namedcmd'} = $::FORM{'namedcmd'};
-        $vars->{'url'} = $url;
-        $template->process("global/message.html.tmpl", $vars)
-          || ThrowTemplateError($template->error());
-        exit;
-    }
     elsif ($::FORM{'remaction'} eq "forget") {
         confirm_login();
         my $userid = DBNameToIdAndCheck($::COOKIE{"Bugzilla_login"});
@@ -304,18 +303,18 @@ if ($::FORM{'cmdtype'} eq "dorem") {
         exit;
     }
 }
-elsif ($::FORM{'cmdtype'} eq "doit" && $::FORM{'remember'}) {
-    if ($::FORM{'remember'} == 1 && $::FORM{'remtype'} eq "asdefault") {
+elsif ($::FORM{'cmdtype'} eq "doit") {
+    if ($::FORM{'remtype'} eq "asdefault") {
         confirm_login();
         my $userid = DBNameToIdAndCheck($::COOKIE{"Bugzilla_login"});
         my $qname = SqlQuote($::defaultqueryname);
         my $qbuffer = SqlQuote($::buffer);
         SendSQL("REPLACE INTO namedqueries (userid, name, query)
                  VALUES ($userid, $qname, $qbuffer)");
-        # Generate and return the UI (HTML page) from the appropriate template.
+                 
         $vars->{'message'} = "buglist_new_default_query";
     }
-    elsif ($::FORM{'remember'} == 1 && $::FORM{'remtype'} eq "asnamed") {
+    elsif ($::FORM{'remtype'} eq "asnamed") {
         confirm_login();
         my $userid = DBNameToIdAndCheck($::COOKIE{"Bugzilla_login"});
 
@@ -324,10 +323,9 @@ elsif ($::FORM{'cmdtype'} eq "doit" && $::FORM{'remember'}) {
         $name !~ /[<>&]/ || ThrowUserError("illegal_query_name");
         my $qname = SqlQuote($name);
 
-        $::buffer =~ s/[\&\?]cmdtype=[a-z]+//;
-        my $qbuffer = SqlQuote($::buffer);
+        my $qbuffer = SqlQuote($::FORM{'newquery'});
 
-        my $tofooter = $::FORM{'tofooter'} ? 1 : 0;
+        my $tofooter = 1;
 
         $vars->{'message'} = "buglist_new_named_query";
 
@@ -353,6 +351,11 @@ elsif ($::FORM{'cmdtype'} eq "doit" && $::FORM{'remember'}) {
         Bugzilla->user->flush_queries_cache();
 
         $vars->{'queryname'} = $name;
+        
+        print "Content-Type: text/html\n\n";
+        $template->process("global/message.html.tmpl", $vars)
+          || ThrowTemplateError($template->error());
+        exit;
     }
 }
 
diff --git a/checksetup.pl b/checksetup.pl
index 15d5231fb162acd111b65a6810030f9af8cdf6af..da8715c4de9c01f0a90f921ebe70f0509b129c09 100755
--- a/checksetup.pl
+++ b/checksetup.pl
@@ -3713,10 +3713,9 @@ if (!$series_exists) {
         
         foreach my $field (@fields) {            
             # Create a Series for each field in this product
-            my $series = new Bugzilla::Series(-1, $product, $all_name,
+            my $series = new Bugzilla::Series($product, $all_name,
                                               $field, $::userid, 1,
-                                              $queries{$field});
-            $series->createInDatabase();
+                                              $queries{$field}, 1);
             $seriesids{$field} = $series->{'series_id'};
         }
         
@@ -3724,10 +3723,9 @@ if (!$series_exists) {
         # the same set as new products (see editproducts.cgi.)
         my @openedstatuses = ("UNCONFIRMED", "NEW", "ASSIGNED", "REOPENED");
         my $query = join("&", map { "bug_status=$_" } @openedstatuses);
-        my $series = new Bugzilla::Series(-1, $product, $all_name,
+        my $series = new Bugzilla::Series($product, $all_name,
                                           $open_name, $::userid, 1, 
-                                          $query_prod . $query);
-        $series->createInDatabase();
+                                          $query_prod . $query, 1);
         
         # Now, we attempt to read in historical data, if any
         # Convert the name in the same way that collectstats.pl does
diff --git a/contrib/CVS/Entries b/contrib/CVS/Entries
index 937d4d689ffa2babb92b35e38525ce56a27e624b..08b7bc1c320a8040545d891383a98b23188834aa 100644
--- a/contrib/CVS/Entries
+++ b/contrib/CVS/Entries
@@ -1,15 +1,15 @@
-/BugzillaEmail.pm/1.2/Mon Aug 26 06:17:21 2002//TBUGZILLA-2_17_5
-/README/1.6/Fri Oct 31 14:00:19 2003//TBUGZILLA-2_17_5
-/README.Mailif/1.3/Wed Mar 15 23:39:03 2000//TBUGZILLA-2_17_5
-/bug_email.pl/1.16/Fri Aug 22 14:59:13 2003//TBUGZILLA-2_17_5
-/bugmail_help.html/1.1/Tue Mar  7 17:36:48 2000//TBUGZILLA-2_17_5
-/bugzilla.procmailrc/1.1/Wed Mar 15 23:39:09 2000//TBUGZILLA-2_17_5
-/bugzilla_email_append.pl/1.5/Tue Sep  3 06:39:01 2002//TBUGZILLA-2_17_5
-/bugzilla_ldapsync.rb/1.2/Sat Apr 26 16:35:04 2003//TBUGZILLA-2_17_5
-/cvs-update.sh/1.3/Tue Aug 27 04:27:58 2002//TBUGZILLA-2_17_5
-/gnats2bz.pl/1.6/Thu Jan 31 14:29:21 2002//TBUGZILLA-2_17_5
-/jb2bz.py/1.1/Wed Feb 13 14:59:30 2002//TBUGZILLA-2_17_5
-/mysqld-watcher.pl/1.5/Thu Mar 27 00:06:53 2003//TBUGZILLA-2_17_5
-/yp_nomail.sh/1.1/Tue Sep 12 23:50:31 2000//TBUGZILLA-2_17_5
+/BugzillaEmail.pm/1.2/Mon Aug 26 06:17:21 2002//TBUGZILLA-2_17_6
+/README/1.6/Fri Oct 31 14:00:19 2003//TBUGZILLA-2_17_6
+/README.Mailif/1.3/Wed Mar 15 23:39:03 2000//TBUGZILLA-2_17_6
+/bug_email.pl/1.16/Fri Aug 22 14:59:13 2003//TBUGZILLA-2_17_6
+/bugmail_help.html/1.1/Tue Mar  7 17:36:48 2000//TBUGZILLA-2_17_6
+/bugzilla.procmailrc/1.1/Wed Mar 15 23:39:09 2000//TBUGZILLA-2_17_6
+/bugzilla_email_append.pl/1.5/Tue Sep  3 06:39:01 2002//TBUGZILLA-2_17_6
+/bugzilla_ldapsync.rb/1.2/Sat Apr 26 16:35:04 2003//TBUGZILLA-2_17_6
+/cvs-update.sh/1.3/Tue Aug 27 04:27:58 2002//TBUGZILLA-2_17_6
+/gnats2bz.pl/1.6/Thu Jan 31 14:29:21 2002//TBUGZILLA-2_17_6
+/jb2bz.py/1.1/Wed Feb 13 14:59:30 2002//TBUGZILLA-2_17_6
+/mysqld-watcher.pl/1.5/Thu Mar 27 00:06:53 2003//TBUGZILLA-2_17_6
+/yp_nomail.sh/1.1/Tue Sep 12 23:50:31 2000//TBUGZILLA-2_17_6
 D/bug-bugzilla////
 D/cmdline////
diff --git a/contrib/CVS/Tag b/contrib/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/contrib/CVS/Tag
+++ b/contrib/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/contrib/bug-bugzilla/CVS/Entries b/contrib/bug-bugzilla/CVS/Entries
index 88f6f5096972f081cc0fe76bf7c1f7c4fa89e116..e690de2025701c887a93fde052db897292e77245 100644
--- a/contrib/bug-bugzilla/CVS/Entries
+++ b/contrib/bug-bugzilla/CVS/Entries
@@ -1,5 +1,5 @@
-/README/1.1/Fri Oct 31 14:00:20 2003//TBUGZILLA-2_17_5
-/bug-bugzilla/1.1/Fri Oct 31 14:00:20 2003//TBUGZILLA-2_17_5
-/bug-bugzilla.xml/1.1/Fri Oct 31 14:00:20 2003//TBUGZILLA-2_17_5
-/bugdata.txt/1.1/Fri Oct 31 14:00:20 2003//TBUGZILLA-2_17_5
+/README/1.1/Fri Oct 31 14:00:20 2003//TBUGZILLA-2_17_6
+/bug-bugzilla/1.1/Fri Oct 31 14:00:20 2003//TBUGZILLA-2_17_6
+/bug-bugzilla.xml/1.1/Fri Oct 31 14:00:20 2003//TBUGZILLA-2_17_6
+/bugdata.txt/1.1/Fri Oct 31 14:00:20 2003//TBUGZILLA-2_17_6
 D
diff --git a/contrib/bug-bugzilla/CVS/Tag b/contrib/bug-bugzilla/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/contrib/bug-bugzilla/CVS/Tag
+++ b/contrib/bug-bugzilla/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/contrib/cmdline/CVS/Entries b/contrib/cmdline/CVS/Entries
index 642f2fb39523cf9c2cff3bd46bc0de70a84064a0..6a373d21850a4d3640946c0ec247b2475aad6743 100644
--- a/contrib/cmdline/CVS/Entries
+++ b/contrib/cmdline/CVS/Entries
@@ -1,4 +1,4 @@
-/buglist/1.1/Thu Nov 15 17:04:58 2001//TBUGZILLA-2_17_5
-/bugs/1.1/Thu Nov 15 17:04:58 2001//TBUGZILLA-2_17_5
-/query.conf/1.1/Thu Nov 15 17:04:58 2001//TBUGZILLA-2_17_5
+/buglist/1.1/Thu Nov 15 17:04:58 2001//TBUGZILLA-2_17_6
+/bugs/1.1/Thu Nov 15 17:04:58 2001//TBUGZILLA-2_17_6
+/query.conf/1.1/Thu Nov 15 17:04:58 2001//TBUGZILLA-2_17_6
 D
diff --git a/contrib/cmdline/CVS/Tag b/contrib/cmdline/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/contrib/cmdline/CVS/Tag
+++ b/contrib/cmdline/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/css/CVS/Entries b/css/CVS/Entries
index 07f22ec6f16c635ad4d0cf042b525486c989a219..3c5e20a2e52aab221b4490bc17c9bd08b13a69a4 100644
--- a/css/CVS/Entries
+++ b/css/CVS/Entries
@@ -1,6 +1,6 @@
-/buglist.css/1.2/Fri Jan 10 08:59:05 2003//TBUGZILLA-2_17_5
-/duplicates.css/1.2/Fri Nov 15 22:04:04 2002//TBUGZILLA-2_17_5
-/edit_bug.css/1.4/Sun Jul 27 01:16:43 2003//TBUGZILLA-2_17_5
-/panel.css/1.1/Wed Dec 12 22:41:11 2001//TBUGZILLA-2_17_5
-/show_multiple.css/1.1/Sat Aug 24 14:43:49 2002//TBUGZILLA-2_17_5
+/buglist.css/1.2/Fri Jan 10 08:59:05 2003//TBUGZILLA-2_17_6
+/duplicates.css/1.2/Fri Nov 15 22:04:04 2002//TBUGZILLA-2_17_6
+/edit_bug.css/1.4/Sun Jul 27 01:16:43 2003//TBUGZILLA-2_17_6
+/panel.css/1.1/Wed Dec 12 22:41:11 2001//TBUGZILLA-2_17_6
+/show_multiple.css/1.1/Sat Aug 24 14:43:49 2002//TBUGZILLA-2_17_6
 D
diff --git a/css/CVS/Tag b/css/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/css/CVS/Tag
+++ b/css/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/docs/CVS/Entries b/docs/CVS/Entries
index 66f04173dcb54fbb9ef973ab96d96ffdd7e99d9b..748d4290b2b5f64559bbad806109a649694ba1be 100644
--- a/docs/CVS/Entries
+++ b/docs/CVS/Entries
@@ -1,6 +1,6 @@
-/README.docs/1.9/Wed Apr 23 03:23:04 2003//TBUGZILLA-2_17_5
-/makedocs.pl/1.6/Tue Jul  8 01:31:05 2003//TBUGZILLA-2_17_5
-/rel_notes.txt/1.23/Fri Apr 25 00:22:41 2003//TBUGZILLA-2_17_5
+/README.docs/1.9/Wed Apr 23 03:23:04 2003//TBUGZILLA-2_17_6
+/makedocs.pl/1.6/Tue Jul  8 01:31:05 2003//TBUGZILLA-2_17_6
+/rel_notes.txt/1.23/Fri Apr 25 00:22:41 2003//TBUGZILLA-2_17_6
 D/html////
 D/images////
 D/pdf////
diff --git a/docs/CVS/Tag b/docs/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/docs/CVS/Tag
+++ b/docs/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/docs/html/CVS/Entries b/docs/html/CVS/Entries
index 9066139a9ffab5d8339cfc97ff80b1ec1e201520..7f2222d371648ae7a01a8b0852284da8961b2518 100644
--- a/docs/html/CVS/Entries
+++ b/docs/html/CVS/Entries
@@ -1,62 +1,62 @@
-/Bugzilla-Guide.html/1.31/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/about.html/1.13/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/administration.html/1.22/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/cmdline.html/1.13/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/conventions.html/1.19/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/copyright.html/1.19/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/credits.html/1.15/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/cust-change-permissions.html/1.6/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/cust-templates.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/database.html/1.12/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/dbdoc.html/1.24/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/dbmodify.html/1.5/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/disclaimer.html/1.14/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/extraconfig.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/faq.html/1.25/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-0.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-1.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-10.html/1.9/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-2.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-3.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-4.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-5.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-6.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-7.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-8.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-9.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl-howto.html/1.15/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/gfdl.html/1.23/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/glossary.html/1.27/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/groups.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/hintsandtips.html/1.12/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/how.html/1.17/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/http.html/1.7/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/index.html/1.24/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/installation.html/1.25/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/integration.html/1.15/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/introduction.html/1.7/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/newversions.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/os-specific.html/1.10/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/parameters.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/patches.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/programadmin.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/rewrite.html/1.9/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/security.html/1.18/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/stepbystep.html/1.23/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/troubleshooting.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/upgrading.html/1.10/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/useradmin.html/1.14/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/userpreferences.html/1.7/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/using.html/1.19/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/variant-fenris.html/1.10/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/variant-issuezilla.html/1.10/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/variant-perforce.html/1.11/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/variant-redhat.html/1.5/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/variant-scarab.html/1.12/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/variant-sourceforge.html/1.12/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/variants.html/1.15/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/voting.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/whatis.html/1.14/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/why.html/1.13/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_5
-/win32.html/1.13/Sat Feb 15 06:12:28 2003//TBUGZILLA-2_17_5
+/Bugzilla-Guide.html/1.31/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/about.html/1.13/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/administration.html/1.22/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/cmdline.html/1.13/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/conventions.html/1.19/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/copyright.html/1.19/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/credits.html/1.15/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/cust-change-permissions.html/1.6/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/cust-templates.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/database.html/1.12/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/dbdoc.html/1.24/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/dbmodify.html/1.5/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/disclaimer.html/1.14/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/extraconfig.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/faq.html/1.25/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-0.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-1.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-10.html/1.9/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-2.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-3.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-4.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-5.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-6.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-7.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-8.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-9.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl-howto.html/1.15/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/gfdl.html/1.23/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/glossary.html/1.27/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/groups.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/hintsandtips.html/1.12/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/how.html/1.17/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/http.html/1.7/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/index.html/1.24/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/installation.html/1.25/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/integration.html/1.15/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/introduction.html/1.7/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/newversions.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/os-specific.html/1.10/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/parameters.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/patches.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/programadmin.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/rewrite.html/1.9/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/security.html/1.18/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/stepbystep.html/1.23/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/troubleshooting.html/1.16/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/upgrading.html/1.10/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/useradmin.html/1.14/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/userpreferences.html/1.7/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/using.html/1.19/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/variant-fenris.html/1.10/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/variant-issuezilla.html/1.10/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/variant-perforce.html/1.11/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/variant-redhat.html/1.5/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/variant-scarab.html/1.12/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/variant-sourceforge.html/1.12/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/variants.html/1.15/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/voting.html/1.8/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/whatis.html/1.14/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/why.html/1.13/Sun Nov  2 14:04:28 2003//TBUGZILLA-2_17_6
+/win32.html/1.13/Sat Feb 15 06:12:28 2003//TBUGZILLA-2_17_6
 D
diff --git a/docs/html/CVS/Tag b/docs/html/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/docs/html/CVS/Tag
+++ b/docs/html/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/docs/images/CVS/Entries b/docs/images/CVS/Entries
index aee3b275143b92f8602cd364adb96de038dd8d9e..9b017596d218b524e1f85f134a49d84d953369c1 100644
--- a/docs/images/CVS/Entries
+++ b/docs/images/CVS/Entries
@@ -1,5 +1,5 @@
-/caution.gif/1.2/Wed May  8 21:16:44 2002/-kb/TBUGZILLA-2_17_5
-/note.gif/1.1/Thu Aug 23 14:30:18 2001/-kb/TBUGZILLA-2_17_5
-/tip.gif/1.2/Wed May  8 21:16:44 2002/-kb/TBUGZILLA-2_17_5
-/warning.gif/1.2/Wed May  8 21:16:44 2002/-kb/TBUGZILLA-2_17_5
+/caution.gif/1.2/Wed May  8 21:16:44 2002/-kb/TBUGZILLA-2_17_6
+/note.gif/1.1/Thu Aug 23 14:30:18 2001/-kb/TBUGZILLA-2_17_6
+/tip.gif/1.2/Wed May  8 21:16:44 2002/-kb/TBUGZILLA-2_17_6
+/warning.gif/1.2/Wed May  8 21:16:44 2002/-kb/TBUGZILLA-2_17_6
 D/callouts////
diff --git a/docs/images/CVS/Tag b/docs/images/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/docs/images/CVS/Tag
+++ b/docs/images/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/docs/images/callouts/CVS/Entries b/docs/images/callouts/CVS/Entries
index 31b9e9b8dfa3c975a7ab3b80e6e07eb2e36526ab..64440e1609ee57960941199f14d74f7e691c45ca 100644
--- a/docs/images/callouts/CVS/Entries
+++ b/docs/images/callouts/CVS/Entries
@@ -1,4 +1,4 @@
-/1.gif/1.1/Sat May 17 01:27:53 2003//TBUGZILLA-2_17_5
-/2.gif/1.1/Sat May 17 01:27:54 2003//TBUGZILLA-2_17_5
-/3.gif/1.1/Thu Jul  3 20:23:39 2003//TBUGZILLA-2_17_5
+/1.gif/1.1/Sat May 17 01:27:53 2003//TBUGZILLA-2_17_6
+/2.gif/1.1/Sat May 17 01:27:54 2003//TBUGZILLA-2_17_6
+/3.gif/1.1/Thu Jul  3 20:23:39 2003//TBUGZILLA-2_17_6
 D
diff --git a/docs/images/callouts/CVS/Tag b/docs/images/callouts/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/docs/images/callouts/CVS/Tag
+++ b/docs/images/callouts/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/docs/pdf/CVS/Entries b/docs/pdf/CVS/Entries
index e7dda7aaeecfa1eeb01383911ac0f3381d05d7bf..d2fc55e61f24c1f7eb50b2c222d694a74023a225 100644
--- a/docs/pdf/CVS/Entries
+++ b/docs/pdf/CVS/Entries
@@ -1,2 +1,2 @@
-/Bugzilla-Guide.pdf/1.5/Sun Nov  2 14:04:29 2003//TBUGZILLA-2_17_5
+/Bugzilla-Guide.pdf/1.5/Sun Nov  2 14:04:29 2003//TBUGZILLA-2_17_6
 D
diff --git a/docs/pdf/CVS/Tag b/docs/pdf/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/docs/pdf/CVS/Tag
+++ b/docs/pdf/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/docs/txt/CVS/Entries b/docs/txt/CVS/Entries
index 289a2390c04bd1c108cb06e0db7115711986c663..2338b41fbe2357a0cc1e13f524c6e166f06b6be9 100644
--- a/docs/txt/CVS/Entries
+++ b/docs/txt/CVS/Entries
@@ -1,2 +1,2 @@
-/Bugzilla-Guide.txt/1.30/Sun Nov  2 14:04:29 2003//TBUGZILLA-2_17_5
+/Bugzilla-Guide.txt/1.30/Sun Nov  2 14:04:29 2003//TBUGZILLA-2_17_6
 D
diff --git a/docs/txt/CVS/Tag b/docs/txt/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/docs/txt/CVS/Tag
+++ b/docs/txt/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/docs/xml/CVS/Entries b/docs/xml/CVS/Entries
index 88e0fd0000804f1181f592316ef98b9c648f0591..ac14ae6033e540342709dc97394250b591355a81 100644
--- a/docs/xml/CVS/Entries
+++ b/docs/xml/CVS/Entries
@@ -1,19 +1,19 @@
-/Bugzilla-Guide.xml/1.29/Sun Nov  2 02:37:21 2003//TBUGZILLA-2_17_5
-/about.xml/1.13/Mon May 12 19:31:44 2003//TBUGZILLA-2_17_5
-/administration.xml/1.31/Thu Oct 30 20:45:26 2003//TBUGZILLA-2_17_5
-/conventions.xml/1.7/Wed Apr 23 02:04:23 2003//TBUGZILLA-2_17_5
-/database.xml/1.13/Mon May 12 19:31:46 2003//TBUGZILLA-2_17_5
-/dbschema.mysql/1.2/Wed May  8 23:19:09 2002//TBUGZILLA-2_17_5
-/faq.xml/1.21/Sat Nov  1 09:51:41 2003//TBUGZILLA-2_17_5
-/filetemp.patch/1.1/Wed Apr  2 00:40:56 2003//TBUGZILLA-2_17_5
-/gfdl.xml/1.8/Mon May 12 19:31:46 2003//TBUGZILLA-2_17_5
-/glossary.xml/1.15/Wed Jul  2 18:58:36 2003//TBUGZILLA-2_17_5
-/index.xml/1.4/Wed Apr 23 02:04:25 2003//TBUGZILLA-2_17_5
-/installation.xml/1.55/Thu Oct 30 18:42:21 2003//TBUGZILLA-2_17_5
-/integration.xml/1.11/Mon May 12 19:31:48 2003//TBUGZILLA-2_17_5
-/introduction.xml/1.3/Wed Apr 23 02:04:26 2003//TBUGZILLA-2_17_5
-/patches.xml/1.16/Mon May 12 19:31:48 2003//TBUGZILLA-2_17_5
-/requiredsoftware.xml/1.6/Mon May 12 19:31:48 2003//TBUGZILLA-2_17_5
-/using.xml/1.15/Fri Oct 31 00:01:11 2003//TBUGZILLA-2_17_5
-/variants.xml/1.13/Mon May 12 19:31:50 2003//TBUGZILLA-2_17_5
+/Bugzilla-Guide.xml/1.29/Sun Nov  2 02:37:21 2003//TBUGZILLA-2_17_6
+/about.xml/1.13/Mon May 12 19:31:44 2003//TBUGZILLA-2_17_6
+/administration.xml/1.31/Thu Oct 30 20:45:26 2003//TBUGZILLA-2_17_6
+/conventions.xml/1.7/Wed Apr 23 02:04:23 2003//TBUGZILLA-2_17_6
+/database.xml/1.13/Mon May 12 19:31:46 2003//TBUGZILLA-2_17_6
+/dbschema.mysql/1.2/Wed May  8 23:19:09 2002//TBUGZILLA-2_17_6
+/faq.xml/1.21/Sat Nov  1 09:51:41 2003//TBUGZILLA-2_17_6
+/filetemp.patch/1.1/Wed Apr  2 00:40:56 2003//TBUGZILLA-2_17_6
+/gfdl.xml/1.8/Mon May 12 19:31:46 2003//TBUGZILLA-2_17_6
+/glossary.xml/1.15/Wed Jul  2 18:58:36 2003//TBUGZILLA-2_17_6
+/index.xml/1.4/Wed Apr 23 02:04:25 2003//TBUGZILLA-2_17_6
+/installation.xml/1.55/Thu Oct 30 18:42:21 2003//TBUGZILLA-2_17_6
+/integration.xml/1.11/Mon May 12 19:31:48 2003//TBUGZILLA-2_17_6
+/introduction.xml/1.3/Wed Apr 23 02:04:26 2003//TBUGZILLA-2_17_6
+/patches.xml/1.16/Mon May 12 19:31:48 2003//TBUGZILLA-2_17_6
+/requiredsoftware.xml/1.6/Mon May 12 19:31:48 2003//TBUGZILLA-2_17_6
+/using.xml/1.15/Fri Oct 31 00:01:11 2003//TBUGZILLA-2_17_6
+/variants.xml/1.13/Mon May 12 19:31:50 2003//TBUGZILLA-2_17_6
 D
diff --git a/docs/xml/CVS/Tag b/docs/xml/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/docs/xml/CVS/Tag
+++ b/docs/xml/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/duplicates.cgi b/duplicates.cgi
index fb54972182503fe867574632e834977639070358..e8d82d2f731b24e9896b17914d987df0a2ae430d 100644
--- a/duplicates.cgi
+++ b/duplicates.cgi
@@ -36,6 +36,7 @@ use vars qw($buffer);
 
 use Bugzilla;
 use Bugzilla::Search;
+use Bugzilla::Constants;
 
 my $cgi = Bugzilla->cgi;
 
@@ -57,7 +58,15 @@ use vars qw($template $vars);
 ConnectToDatabase();
 GetVersionTable();
 
-quietly_check_login();
+# collectstats.pl uses duplicates.cgi to generate the RDF duplicates stats.
+# However, this conflicts with requirelogin if it's enabled; so we make
+# logging-in optional if we are running from the command line.
+if ($::ENV{'GATEWAY_INTERFACE'} eq "cmdline") {
+    Bugzilla->login(LOGIN_OPTIONAL);
+}
+else {
+    Bugzilla->login(LOGIN_NORMAL);
+}
 
 Bugzilla->switch_to_shadow_db();
 
diff --git a/editcomponents.cgi b/editcomponents.cgi
index 539da47a5d31021ca13e6e66f62758d4617acaee..adf41ea1fc239a679934f671d1cdee7b40a97b0b 100755
--- a/editcomponents.cgi
+++ b/editcomponents.cgi
@@ -465,13 +465,9 @@ if ($action eq 'new') {
     push(@series, [$::FORM{'closed_name'}, $resolved . $prodcomp]);
 
     foreach my $sdata (@series) {
-        # We create the series with an nonsensical series_id, which is
-        # guaranteed not to exist. This is OK, because we immediately call
-        # createInDatabase().
-        my $series = new Bugzilla::Series(-1, $product, $component,
+        my $series = new Bugzilla::Series($product, $component,
                                           $sdata->[0], $::userid, 1,
-                                          $sdata->[1]);
-        $series->createInDatabase();
+                                          $sdata->[1], 1);
     }
 
     # Make versioncache flush
diff --git a/editgroups.cgi b/editgroups.cgi
index e793f296a83cc0dffa1e25500c8665d095a3e47b..937056512ff886ad0d097adffadf61aca18dffef 100755
--- a/editgroups.cgi
+++ b/editgroups.cgi
@@ -21,6 +21,7 @@
 # Contributor(s): Dave Miller <justdave@syndicomm.com>
 #                 Joel Peshkin <bugreport@peshkin.net>
 #                 Jacob Steenhagen <jake@bugzilla.org>
+#                 Vlad Dascalu <jocuri@softhome.net>
 
 # Code derived from editowners.cgi and editusers.cgi
 
@@ -30,6 +31,8 @@ use lib ".";
 use Bugzilla::Constants;
 require "CGI.pl";
 
+use vars qw($template $vars);
+
 ConnectToDatabase();
 confirm_login();
 
@@ -282,51 +285,11 @@ if ($action eq 'changeform') {
 #
 
 if ($action eq 'add') {
-    PutHeader("Add group");
-
-    print "<FORM METHOD=POST ACTION=editgroups.cgi>\n";
-    print "<TABLE BORDER=1 CELLPADDING=4 CELLSPACING=0><TR>\n";
-    print "<th>New Name</th>";
-    print "<th>New Description</th>";
-    print "<th>New User RegExp</th>";
-    print "<th>Use For Bugs</th>";
-    print "</tr><tr>";
-    print "<td><input size=20 name=\"name\"></td>\n";
-    print "<td><input size=40 name=\"desc\"></td>\n";
-    print "<td><input size=30 name=\"regexp\"></td>\n";
-    print "<td><input type=\"checkbox\" name=\"isactive\" value=\"1\" checked></td>\n";
-    print "</TR></TABLE>\n<HR>\n";
-    print "<input type=\"checkbox\" name=\"insertnew\" value=\"1\"";
-    print " checked" if Param("makeproductgroups");
-    print ">\n";
-    print "Insert new group into all existing products.<P>\n";
-    print "<INPUT TYPE=SUBMIT VALUE=\"Add\">\n";
-    print "<INPUT TYPE=HIDDEN NAME=\"action\" VALUE=\"new\">\n";
-    print "</FORM>";
+    print Bugzilla->cgi->header();
 
-    print "<p>";
-    print "<b>Name</b> is what is used with the UserInGroup() function in any
-customized cgi files you write that use a given group.  It can also be used by
-people submitting bugs by email to limit a bug to a certain set of groups.  It
-may not contain any spaces.<p>";
-    print "<b>Description</b> is what will be shown in the bug reports to
-members of the group where they can choose whether the bug will be restricted
-to others in the same group.<p>";
-    print "The <b>Use For Bugs</b> flag determines whether or not the group is eligible to be used for bugs.
-If you clear this, it will no longer be possible for users to add bugs
-to this group, although bugs already in the group will remain in the group.
-Doing so is a much less drastic way to stop a group from growing
-than deleting the group would be.  <b>Note: If you are creating a group, you
-probably want it to be usable for bugs, in which case you should leave this checked.</b><p>";
-    print "<b>User RegExp</b> is optional, and if filled in, will ";
-    print "automatically grant membership to this group to anyone with an ";
-    print "email address that matches this regular expression.<p>\n";
-    print "By default, the new group will be associated with existing ";
-    print "products. Unchecking the \"Insert new group into all existing ";
-    print "products\" option will prevent this and make the group become ";
-    print "visible only when its controls have been added to a product.<P>\n";
-
-    PutTrailer("back to the <a href=\"editgroups.cgi\">group list</a>");
+    $template->process("admin/add-group.html.tmpl", $vars)
+      || ThrowTemplateError($template->error());
+    
     exit;
 }
 
diff --git a/editproducts.cgi b/editproducts.cgi
index c36537c2208c7b2656623055c7c46800ce780f2e..5cc10ddc28489c72ec0b9032ba5c7e46dd846e83 100755
--- a/editproducts.cgi
+++ b/editproducts.cgi
@@ -426,14 +426,9 @@ if ($action eq 'new') {
     push(@series, [$::FORM{'open_name'}, $query]);
 
     foreach my $sdata (@series) {
-        # We create the series with an nonsensical series_id, which is
-        # guaranteed not to exist. This is OK, because we immediately call
-        # createInDatabase().
-        my $series = new Bugzilla::Series(-1, $product,
-                                          $::FORM{'subcategory'},
+        my $series = new Bugzilla::Series($product, $::FORM{'subcategory'},
                                           $sdata->[0], $::userid, 1,
-                                          $sdata->[1] . "&product=$product");
-        $series->createInDatabase();
+                                          $sdata->[1] . "&product=$product", 1);
     }
 
     # Make versioncache flush
diff --git a/globals.pl b/globals.pl
index fd9595fbce880fa79bd3adcbdfbbade0bb79d7c9..f420ea319c3ec87338d97ae57589e907a9923a86 100644
--- a/globals.pl
+++ b/globals.pl
@@ -195,7 +195,7 @@ sub GenerateVersionTable {
     while (@line = FetchSQLData()) {
         my ($p, $d, $votesperuser, $dis, $u) = (@line);
         $::proddesc{$p} = $d;
-        if (!$dis) {
+        if (!$dis && scalar($::components{$p})) {
             push @::enterable_products, $p;
         }
         if ($dotargetmilestone) {
diff --git a/js/CVS/Entries b/js/CVS/Entries
index 1268451bf84f959279076cc9d4f7d19e290760e5..4bccac99310fb9f1fcb1c12de649d151d1846c8e 100644
--- a/js/CVS/Entries
+++ b/js/CVS/Entries
@@ -1,2 +1,2 @@
-/duplicates.js/1.1/Tue Nov  5 01:54:05 2002//TBUGZILLA-2_17_5
+/duplicates.js/1.1/Tue Nov  5 01:54:05 2002//TBUGZILLA-2_17_6
 D
diff --git a/js/CVS/Tag b/js/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/js/CVS/Tag
+++ b/js/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/process_bug.cgi b/process_bug.cgi
index ffad17b7076d2c25feb8a6c7e36874548cad5000..4fd9cc74641117ed8b346902a95c24b982166271 100755
--- a/process_bug.cgi
+++ b/process_bug.cgi
@@ -1120,7 +1120,7 @@ foreach my $id (@idlist) {
     my $i = 0;
     foreach my $col (@::log_columns) {
         # Consider NULL db entries to be equivalent to the empty string
-        $oldvalues[$i] ||= '';
+        $oldvalues[$i] = '' unless defined($oldvalues[$i]);
         $oldhash{$col} = $oldvalues[$i];
         if (exists $::FORM{$col}) {
             if (!CheckCanChangeField($col, $id, $oldvalues[$i], $::FORM{$col})) {
diff --git a/t/009bugwords.t b/t/009bugwords.t
new file mode 100644
index 0000000000000000000000000000000000000000..b6cc736999f95a39c6306de7a0cce87c3ef650c7
--- /dev/null
+++ b/t/009bugwords.t
@@ -0,0 +1,101 @@
+# -*- Mode: perl; indent-tabs-mode: nil -*-
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code are the Bugzilla tests.
+#
+# The Initial Developer of the Original Code is Jacob Steenhagen.
+# Portions created by Jacob Steenhagen are
+# Copyright (C) 2001 Jacob Steenhagen. All
+# Rights Reserved.
+#
+# Contributor(s): Gervase Markham <gerv@gerv.net>
+#
+
+#################
+#Bugzilla Test 9#
+####bugwords#####
+
+# Bugzilla has a mechanism for taking various words, including "bug", "bugs", 
+# and "a bug" and automatically replacing them in the templates with the local
+# terminology. It does this by using the 'terms' hash, so "bug" becomes 
+# "[% terms.bug %]". This test makes sure the relevant words aren't used
+# bare.
+
+use strict;
+
+use lib 't';
+
+use Support::Files;
+use Support::Templates;
+use Bugzilla::Util;
+
+use File::Spec 0.82;
+
+use Test::More tests => ($Support::Templates::num_actual_files); 
+
+# Find all the templates
+my @testitems;
+for my $path (@Support::Templates::include_paths) {
+    push(@testitems, map(File::Spec->catfile($path, $_),
+                         Support::Templates::find_actual_files($path)));
+}
+
+foreach my $file (@testitems) {
+    my @errors;
+    
+    # Read the entire file into a string
+    local $/;
+    open (FILE, "<$file") || die "Can't open $file: $!\n";    
+    my $slurp = <FILE>;
+    close (FILE);
+
+    # /g means we execute this loop for every match
+    # /s means we ignore linefeeds in the regexp matches
+    # This extracts everything which is _not_ a directive.
+    while ($slurp =~ /%\](.*?)(\[%|$)/gs) {
+        my $text = $1;
+
+        my @lineno = ($` =~ m/\n/gs);
+        my $lineno = scalar(@lineno) + 1;
+    
+        # "a bug", "bug", "bugs"
+        if (grep /(a?[\s>]bugs?[\s.:;])/i, $text) {
+            # Exclude variable assignment.
+            unless (grep /bugs =/, $text) {
+                push(@errors, [$lineno, $text]);
+                next;
+            }
+        }
+
+        # "Bugzilla"
+        if (grep /Bugzilla[^_]/, $text) {
+            # Exclude JS comments, hyperlinks, USE and variable assignment.
+            unless (grep /(\/\/.*|org.*>|USE |= )Bugzilla/, $text) {
+                push(@errors, [$lineno, $text]);
+                next;
+            }
+        }
+    }
+        
+    if (scalar(@errors)) {
+      ok(0, "$file contains invalid bare words (e.g. 'bug') --WARNING");
+      
+      foreach my $error (@errors) {
+        print "$error->[0]: $error->[1]\n";
+      }
+    } 
+    else {
+      ok(1, "$file has no invalid barewords");
+    }
+}
+
+exit 0;
diff --git a/t/CVS/Entries b/t/CVS/Entries
index 50df48d96ed27ee2c2b1fa32398d832845b17aec..e18b414b41c40f181c152388a1e545f45b5607f7 100644
--- a/t/CVS/Entries
+++ b/t/CVS/Entries
@@ -1,9 +1,10 @@
-/001compile.t/1.10/Mon Dec  9 22:32:09 2002//TBUGZILLA-2_17_5
-/002goodperl.t/1.12/Thu Mar 27 00:07:02 2003//TBUGZILLA-2_17_5
-/003safesys.t/1.5/Mon Dec  9 22:32:09 2002//TBUGZILLA-2_17_5
-/004template.t/1.28/Thu Sep 11 22:57:19 2003//TBUGZILLA-2_17_5
-/005no_tabs.t/1.12/Thu Jan 23 23:34:07 2003//TBUGZILLA-2_17_5
-/006spellcheck.t/1.3/Fri Jan 10 23:51:38 2003//TBUGZILLA-2_17_5
-/007util.t/1.4/Tue Jan 28 22:32:53 2003//TBUGZILLA-2_17_5
-/008filter.t/1.7/Sat Sep  6 19:23:43 2003//TBUGZILLA-2_17_5
+/001compile.t/1.10/Mon Dec  9 22:32:09 2002//TBUGZILLA-2_17_6
+/002goodperl.t/1.12/Thu Mar 27 00:07:02 2003//TBUGZILLA-2_17_6
+/003safesys.t/1.5/Mon Dec  9 22:32:09 2002//TBUGZILLA-2_17_6
+/004template.t/1.28/Thu Sep 11 22:57:19 2003//TBUGZILLA-2_17_6
+/005no_tabs.t/1.12/Thu Jan 23 23:34:07 2003//TBUGZILLA-2_17_6
+/006spellcheck.t/1.3/Fri Jan 10 23:51:38 2003//TBUGZILLA-2_17_6
+/007util.t/1.4/Tue Jan 28 22:32:53 2003//TBUGZILLA-2_17_6
+/008filter.t/1.7/Sat Sep  6 19:23:43 2003//TBUGZILLA-2_17_6
+/009bugwords.t/1.2/Sat Nov  8 18:51:07 2003//TBUGZILLA-2_17_6
 D/Support////
diff --git a/t/CVS/Tag b/t/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/t/CVS/Tag
+++ b/t/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/t/Support/CVS/Entries b/t/Support/CVS/Entries
index 88b2e6179cb681046319308bd3d9cd1fe96ffa4c..ca16321270f02f80feb4107fd861900a08eaa32d 100644
--- a/t/Support/CVS/Entries
+++ b/t/Support/CVS/Entries
@@ -1,4 +1,4 @@
-/Files.pm/1.14/Sat Mar 22 04:47:23 2003//TBUGZILLA-2_17_5
-/Systemexec.pm/1.2/Fri Oct 19 22:39:51 2001//TBUGZILLA-2_17_5
-/Templates.pm/1.12/Thu Jan 23 23:34:10 2003//TBUGZILLA-2_17_5
+/Files.pm/1.14/Sat Mar 22 04:47:23 2003//TBUGZILLA-2_17_6
+/Systemexec.pm/1.2/Fri Oct 19 22:39:51 2001//TBUGZILLA-2_17_6
+/Templates.pm/1.12/Thu Jan 23 23:34:10 2003//TBUGZILLA-2_17_6
 D
diff --git a/t/Support/CVS/Tag b/t/Support/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/t/Support/CVS/Tag
+++ b/t/Support/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/CVS/Entries b/template/CVS/Entries
index 4b9d85dc94db8c7b028bd6b3a0181fdf695cbc2d..6475e0ffc57ba4dfa9595921b61ceb007619465f 100644
--- a/template/CVS/Entries
+++ b/template/CVS/Entries
@@ -1,2 +1,2 @@
-/.cvsignore/1.3/Tue May  7 21:33:53 2002//TBUGZILLA-2_17_5
+/.cvsignore/1.3/Tue May  7 21:33:53 2002//TBUGZILLA-2_17_6
 D/en////
diff --git a/template/CVS/Tag b/template/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/CVS/Tag
+++ b/template/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/CVS/Entries b/template/en/CVS/Entries
index e0cd445a845423c44af699bcc70f2206db58dab8..19894de59fcedceb88961b1bb4420a55167fcac5 100644
--- a/template/en/CVS/Entries
+++ b/template/en/CVS/Entries
@@ -1,2 +1,2 @@
-/.cvsignore/1.1/Wed Apr 24 07:29:49 2002//TBUGZILLA-2_17_5
+/.cvsignore/1.1/Wed Apr 24 07:29:49 2002//TBUGZILLA-2_17_6
 D/default////
diff --git a/template/en/CVS/Tag b/template/en/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/CVS/Tag
+++ b/template/en/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/CVS/Entries b/template/en/default/CVS/Entries
index 4dd605c3f6c4132c038f1be25be778aec23f46c1..2eb9b8dd7ee670c50e5c14fc90b73979eabbc5b0 100644
--- a/template/en/default/CVS/Entries
+++ b/template/en/default/CVS/Entries
@@ -1,8 +1,8 @@
-/config.js.tmpl/1.4/Mon Jun 23 18:01:38 2003//TBUGZILLA-2_17_5
-/config.rdf.tmpl/1.4/Mon Jun 23 18:01:39 2003//TBUGZILLA-2_17_5
-/filterexceptions.pl/1.11/Wed Oct 29 04:51:15 2003//TBUGZILLA-2_17_5
-/index.html.tmpl/1.12/Wed Sep 24 08:00:13 2003//TBUGZILLA-2_17_5
-/sidebar.xul.tmpl/1.11/Thu Jul  3 21:31:53 2003//TBUGZILLA-2_17_5
+/config.js.tmpl/1.4/Mon Jun 23 18:01:38 2003//TBUGZILLA-2_17_6
+/config.rdf.tmpl/1.4/Mon Jun 23 18:01:39 2003//TBUGZILLA-2_17_6
+/filterexceptions.pl/1.11/Wed Oct 29 04:51:15 2003//TBUGZILLA-2_17_6
+/index.html.tmpl/1.12/Wed Sep 24 08:00:13 2003//TBUGZILLA-2_17_6
+/sidebar.xul.tmpl/1.11/Thu Jul  3 21:31:53 2003//TBUGZILLA-2_17_6
 D/account////
 D/admin////
 D/attachment////
diff --git a/template/en/default/CVS/Tag b/template/en/default/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/CVS/Tag
+++ b/template/en/default/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/account/CVS/Entries b/template/en/default/account/CVS/Entries
index fee1de6fb4fd3dc1bbf9afb58f6b12dc07df7a05..bd52538e9219a4c75065ca26edba64212603986f 100644
--- a/template/en/default/account/CVS/Entries
+++ b/template/en/default/account/CVS/Entries
@@ -1,7 +1,7 @@
-/cancel-token.txt.tmpl/1.5/Sun Sep 14 16:59:33 2003//TBUGZILLA-2_17_5
-/create.html.tmpl/1.4/Thu Jul  3 21:31:17 2003//TBUGZILLA-2_17_5
-/created.html.tmpl/1.4/Mon May  6 19:16:50 2002//TBUGZILLA-2_17_5
-/exists.html.tmpl/1.6/Thu Jul  3 21:31:17 2003//TBUGZILLA-2_17_5
+/cancel-token.txt.tmpl/1.5/Sun Sep 14 16:59:33 2003//TBUGZILLA-2_17_6
+/create.html.tmpl/1.6/Fri Nov  7 23:23:55 2003//TBUGZILLA-2_17_6
+/created.html.tmpl/1.4/Mon May  6 19:16:50 2002//TBUGZILLA-2_17_6
+/exists.html.tmpl/1.6/Thu Jul  3 21:31:17 2003//TBUGZILLA-2_17_6
 D/auth////
 D/email////
 D/password////
diff --git a/template/en/default/account/CVS/Tag b/template/en/default/account/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/account/CVS/Tag
+++ b/template/en/default/account/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/account/auth/CVS/Entries b/template/en/default/account/auth/CVS/Entries
index e272c0ced52c94871902465983ebf9b91017117d..38ededd4102b253ca10f399a4aa6e907ef177692 100644
--- a/template/en/default/account/auth/CVS/Entries
+++ b/template/en/default/account/auth/CVS/Entries
@@ -1,3 +1,3 @@
-/ldap-error.html.tmpl/1.2/Thu Jul  3 21:31:13 2003//TBUGZILLA-2_17_5
-/login.html.tmpl/1.3/Thu Jul  3 21:31:13 2003//TBUGZILLA-2_17_5
+/ldap-error.html.tmpl/1.2/Thu Jul  3 21:31:13 2003//TBUGZILLA-2_17_6
+/login.html.tmpl/1.3/Thu Jul  3 21:31:13 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/account/auth/CVS/Tag b/template/en/default/account/auth/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/account/auth/CVS/Tag
+++ b/template/en/default/account/auth/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/account/create.html.tmpl b/template/en/default/account/create.html.tmpl
index ec3964e9f5ca957f9b3329d5a8967ec6e5269ba1..c787b8d3ffd21b61ff2ea10966ee519b93177f9c 100644
--- a/template/en/default/account/create.html.tmpl
+++ b/template/en/default/account/create.html.tmpl
@@ -27,10 +27,17 @@ Create a new [% terms.Bugzilla %] account
 [% PROCESS global/header.html.tmpl %]
 
 <p>
-  To create a [% terms.Bugzilla %] account, all that you need to do is to enter a
-  legitimate e-mail address.  The account will be created, and its
-  password will be mailed to you. Optionally you may enter your real name
-  as well.
+  To create a [% terms.Bugzilla %] account, all you need to do is
+  enter a legitimate e-mail address. The account will be created, and
+  its password will be mailed to you. <b>You will not be able to log
+  in until you receive the password.</b> If it doesn't arrive within a
+  reasonable amount of time, you can contact the maintainer of
+  this [% terms.Bugzilla %] installation
+  at <a href="mailto:[% Param("maintainer") %]">[% Param("maintainer") %]</a>.
+</p>
+
+<p>
+  Optionally you may enter your real name as well.
 </p>
 
 <form method="get" action="createaccount.cgi">
diff --git a/template/en/default/account/email/CVS/Entries b/template/en/default/account/email/CVS/Entries
index b7d9dea1878d4234061caa7c6f12da5420cf3fbf..6afdbcdbc9fda7269bdb2af0d53d4af425c077c8 100644
--- a/template/en/default/account/email/CVS/Entries
+++ b/template/en/default/account/email/CVS/Entries
@@ -1,4 +1,4 @@
-/change-new.txt.tmpl/1.4/Thu Jul  3 21:31:21 2003//TBUGZILLA-2_17_5
-/change-old.txt.tmpl/1.5/Thu Jul  3 21:31:21 2003//TBUGZILLA-2_17_5
-/confirm.html.tmpl/1.7/Sat Aug 10 08:06:52 2002//TBUGZILLA-2_17_5
+/change-new.txt.tmpl/1.4/Thu Jul  3 21:31:21 2003//TBUGZILLA-2_17_6
+/change-old.txt.tmpl/1.5/Thu Jul  3 21:31:21 2003//TBUGZILLA-2_17_6
+/confirm.html.tmpl/1.7/Sat Aug 10 08:06:52 2002//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/account/email/CVS/Tag b/template/en/default/account/email/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/account/email/CVS/Tag
+++ b/template/en/default/account/email/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/account/password/CVS/Entries b/template/en/default/account/password/CVS/Entries
index d7cddb6e62c30e6a5b67ebbba9358d5191ff6495..5e98fb635fdc28200c525ff5fc7df26a5b729bcb 100644
--- a/template/en/default/account/password/CVS/Entries
+++ b/template/en/default/account/password/CVS/Entries
@@ -1,3 +1,3 @@
-/forgotten-password.txt.tmpl/1.3/Thu Jul  3 21:31:23 2003//TBUGZILLA-2_17_5
-/set-forgotten-password.html.tmpl/1.5/Sat Aug 10 08:06:56 2002//TBUGZILLA-2_17_5
+/forgotten-password.txt.tmpl/1.3/Thu Jul  3 21:31:23 2003//TBUGZILLA-2_17_6
+/set-forgotten-password.html.tmpl/1.5/Sat Aug 10 08:06:56 2002//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/account/password/CVS/Tag b/template/en/default/account/password/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/account/password/CVS/Tag
+++ b/template/en/default/account/password/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/account/prefs/CVS/Entries b/template/en/default/account/prefs/CVS/Entries
index 9b5908f4217e240c05b662c69c9c9d4e9fd18baa..0394237ea8f764f96e10dc37545081b6088cbd15 100644
--- a/template/en/default/account/prefs/CVS/Entries
+++ b/template/en/default/account/prefs/CVS/Entries
@@ -1,6 +1,6 @@
-/account.html.tmpl/1.3/Sat Sep  6 19:23:37 2003//TBUGZILLA-2_17_5
-/email.html.tmpl/1.10/Sat Sep  6 19:23:38 2003//TBUGZILLA-2_17_5
-/footer.html.tmpl/1.3/Thu Jul  3 21:31:25 2003//TBUGZILLA-2_17_5
-/permissions.html.tmpl/1.5/Thu Jul  3 21:31:25 2003//TBUGZILLA-2_17_5
-/prefs.html.tmpl/1.10/Mon Mar 24 21:33:06 2003//TBUGZILLA-2_17_5
+/account.html.tmpl/1.3/Sat Sep  6 19:23:37 2003//TBUGZILLA-2_17_6
+/email.html.tmpl/1.10/Sat Sep  6 19:23:38 2003//TBUGZILLA-2_17_6
+/footer.html.tmpl/1.3/Thu Jul  3 21:31:25 2003//TBUGZILLA-2_17_6
+/permissions.html.tmpl/1.5/Thu Jul  3 21:31:25 2003//TBUGZILLA-2_17_6
+/prefs.html.tmpl/1.11/Sat Nov  8 21:49:20 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/account/prefs/CVS/Tag b/template/en/default/account/prefs/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/account/prefs/CVS/Tag
+++ b/template/en/default/account/prefs/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/account/prefs/prefs.html.tmpl b/template/en/default/account/prefs/prefs.html.tmpl
index 5892cb40edb2eb2d55a6321eaeb356c9782bb763..54cc14f66f8e9f4f6804f10f9b51a70e20197421 100644
--- a/template/en/default/account/prefs/prefs.html.tmpl
+++ b/template/en/default/account/prefs/prefs.html.tmpl
@@ -53,8 +53,6 @@
               saveable => "1" },
             { name => "email", description => "Email settings", 
               saveable => "1" },
-            { name => "footer", description => "Page footer", 
-              saveable => "1" },
             { name => "permissions", description => "Permissions", 
               saveable => "0" } ] %]
 
diff --git a/template/en/default/admin/CVS/Entries b/template/en/default/admin/CVS/Entries
index 52545258c9c82356d0bd3614dcefcf70fd22fd86..fdb94353d583e980c9e6dd87b88489c48ec08b4a 100644
--- a/template/en/default/admin/CVS/Entries
+++ b/template/en/default/admin/CVS/Entries
@@ -1,2 +1,3 @@
+/add-group.html.tmpl/1.1/Sun Nov  9 21:07:26 2003//TBUGZILLA-2_17_6
 D/flag-type////
 D/products////
diff --git a/template/en/default/admin/CVS/Entries.Log b/template/en/default/admin/CVS/Entries.Log
new file mode 100644
index 0000000000000000000000000000000000000000..93cea06d9a13d4ac03ac31ac28e3068bf2d73298
--- /dev/null
+++ b/template/en/default/admin/CVS/Entries.Log
@@ -0,0 +1,8 @@
+A D/attachstatus////
+A D/common////
+A D/keywords////
+A D/request-type////
+R D/request-type////
+R D/keywords////
+R D/common////
+R D/attachstatus////
diff --git a/template/en/default/admin/CVS/Tag b/template/en/default/admin/CVS/Tag
index 9850221a0eb3c0ab21c87ec0e071c7a10c0e874f..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/admin/CVS/Tag
+++ b/template/en/default/admin/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/admin/add-group.html.tmpl b/template/en/default/admin/add-group.html.tmpl
new file mode 100755
index 0000000000000000000000000000000000000000..5adb53599a8cb59152aab967190667fbfc3c3650
--- /dev/null
+++ b/template/en/default/admin/add-group.html.tmpl
@@ -0,0 +1,82 @@
+<!-- 1.0@bugzilla.org -->
+[%# The contents of this file are subject to the Mozilla Public
+  # License Version 1.1 (the "License"); you may not use this file
+  # except in compliance with the License. You may obtain a copy of
+  # the License at http://www.mozilla.org/MPL/
+  #
+  # Software distributed under the License is distributed on an "AS
+  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+  # implied. See the License for the specific language governing
+  # rights and limitations under the License.
+  #
+  # The Original Code is the Bugzilla Bug Tracking System.
+  #
+  # The Initial Developer of the Original Code is Netscape Communications
+  # Corporation. Portions created by Netscape are
+  # Copyright (C) 1998 Netscape Communications Corporation. All
+  # Rights Reserved.
+  #
+  # Contributor(s): Dave Miller <justdave@syndicomm.com>
+  #                 Joel Peshkin <bugreport@peshkin.net>
+  #                 Jacob Steenhagen <jake@bugzilla.org>
+  #                 Vlad Dascalu <jocuri@softhome.net>
+
+  #%]
+
+[% PROCESS global/header.html.tmpl
+  title = "Add group"
+  h2 = "This page allows you to define a new user group."
+%]
+
+<form method="post" action="editgroups.cgi">
+  <table border="1" cellpadding="4" cellspacing="0"><tr>
+    <th>New Name</th>
+    <th>New Description</th>
+    <th>New User RegExp</th>
+    <th>Use For [% terms.Bugs %]</th>
+  </tr><tr>
+    <td><input size="20" name="name"></td>
+    <td><input size="40" name="desc"></td>
+    <td><input size="30" name="regexp"></td>
+    <td><input type="checkbox" name="isactive" value="1" checked></td>
+  </tr></table><hr>
+
+  <input type="checkbox" name="insertnew" value="1"
+    [% IF Param("makeproductgroups") %] checked[% END %]>
+    Insert new group into all existing products.<p>
+  <input type="submit" value="Add">
+  <input type="hidden" name="action" value="new">
+</form>
+
+<p><b>Name</b> is what is used with the UserInGroup() function in any
+customized cgi files you write that use a given group.  It can also be used
+by people submitting [% terms.bugs %] by email to limit a [% terms.bug %] to
+a certain set of groups. It may not contain any spaces.</p>
+
+<p><b>Description</b> is what will be shown in the [% terms.bug %] reports
+to members of the group where they can choose whether
+the [% terms.bug %] will be restricted to others in the same group.</p>
+
+<p>The <b>Use For [% terms.Bugs %]</b> flag determines whether or not the
+group is eligible to be used for [% terms.bugs %]. If you clear this, it will
+no longer be possible for users to add [% terms.bugs %] to this group,
+although [% terms.bugs %] already in the group will remain in the group.
+Doing so is a much less drastic way to stop a group from growing
+than deleting the group would be. <b>Note: If you are creating
+a group, you probably want it to be usable for [% terms.bugs %], in which
+case you should leave this checked.</b></p>
+
+<p><b>User RegExp</b> is optional, and if filled in, will 
+automatically grant membership to this group to anyone with an 
+email address that matches this regular expression.</p>
+
+<p>By default, the new group will be associated with existing 
+products. Unchecking the "Insert new group into all existing 
+products" option will prevent this and make the group become 
+visible only when its controls have been added to a product.</p>
+
+<p>Back to the <a href="./">main [% terms.bugs %] page</a>
+
+or to the <a href="editgroups.cgi">group list</a>.
+
+[% PROCESS global/footer.html.tmpl %] 
diff --git a/template/en/default/admin/flag-type/CVS/Entries b/template/en/default/admin/flag-type/CVS/Entries
index 32323b8dc4707838b9c92f47fa0ba4ea44b337f1..895f6ac5d24c0dacf4db2ed48311cf982e52562a 100644
--- a/template/en/default/admin/flag-type/CVS/Entries
+++ b/template/en/default/admin/flag-type/CVS/Entries
@@ -1,4 +1,4 @@
-/confirm-delete.html.tmpl/1.4/Sat Sep  6 19:23:36 2003//TBUGZILLA-2_17_5
-/edit.html.tmpl/1.5/Sat Sep  6 19:23:36 2003//TBUGZILLA-2_17_5
-/list.html.tmpl/1.6/Sat Sep  6 19:23:36 2003//TBUGZILLA-2_17_5
+/confirm-delete.html.tmpl/1.4/Sat Sep  6 19:23:36 2003//TBUGZILLA-2_17_6
+/edit.html.tmpl/1.5/Sat Sep  6 19:23:36 2003//TBUGZILLA-2_17_6
+/list.html.tmpl/1.6/Sat Sep  6 19:23:36 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/admin/flag-type/CVS/Tag b/template/en/default/admin/flag-type/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/admin/flag-type/CVS/Tag
+++ b/template/en/default/admin/flag-type/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/admin/products/CVS/Tag b/template/en/default/admin/products/CVS/Tag
index 9850221a0eb3c0ab21c87ec0e071c7a10c0e874f..491b1813288649a9df1097f0ad97fa9f4823043d 100644
--- a/template/en/default/admin/products/CVS/Tag
+++ b/template/en/default/admin/products/CVS/Tag
@@ -1 +1 @@
-TBUGZILLA-2_17_5
+TBUGZILLA-2_17_6
diff --git a/template/en/default/admin/products/groupcontrol/CVS/Entries b/template/en/default/admin/products/groupcontrol/CVS/Entries
index 5fdd532d4d1e5e2d733c1aded21b6d38142b1b3e..cb4c5d307cc64770ff2d83a356eef6a584f4ab81 100644
--- a/template/en/default/admin/products/groupcontrol/CVS/Entries
+++ b/template/en/default/admin/products/groupcontrol/CVS/Entries
@@ -1,3 +1,3 @@
-/confirm-edit.html.tmpl/1.3/Thu Jul  3 21:31:29 2003//TBUGZILLA-2_17_5
-/edit.html.tmpl/1.2/Thu Jul  3 21:31:29 2003//TBUGZILLA-2_17_5
+/confirm-edit.html.tmpl/1.3/Thu Jul  3 21:31:29 2003//TBUGZILLA-2_17_6
+/edit.html.tmpl/1.2/Thu Jul  3 21:31:29 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/admin/products/groupcontrol/CVS/Tag b/template/en/default/admin/products/groupcontrol/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/admin/products/groupcontrol/CVS/Tag
+++ b/template/en/default/admin/products/groupcontrol/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/attachment/CVS/Entries b/template/en/default/attachment/CVS/Entries
index 15d2835ca0df66cb61b5d24a8d4ef55de1912d77..abfcbdbefec5fef5a571ff3fa67a621031bcd606 100644
--- a/template/en/default/attachment/CVS/Entries
+++ b/template/en/default/attachment/CVS/Entries
@@ -1,11 +1,11 @@
-/content-types.html.tmpl/1.3/Thu Oct 24 03:52:35 2002//TBUGZILLA-2_17_5
-/create.html.tmpl/1.16/Thu Jul  3 21:31:31 2003//TBUGZILLA-2_17_5
-/created.html.tmpl/1.9/Thu Jul  3 21:31:31 2003//TBUGZILLA-2_17_5
-/diff-file.html.tmpl/1.1/Wed Jul 30 20:04:59 2003//TBUGZILLA-2_17_5
-/diff-footer.html.tmpl/1.1/Wed Jul 30 20:05:00 2003//TBUGZILLA-2_17_5
-/diff-header.html.tmpl/1.1/Wed Jul 30 20:05:00 2003//TBUGZILLA-2_17_5
-/edit.html.tmpl/1.20/Wed Aug 20 00:45:43 2003//TBUGZILLA-2_17_5
-/list.html.tmpl/1.14/Sat Sep  6 19:23:33 2003//TBUGZILLA-2_17_5
-/show-multiple.html.tmpl/1.11/Thu Jul  3 21:31:31 2003//TBUGZILLA-2_17_5
-/updated.html.tmpl/1.9/Thu Jul  3 21:31:31 2003//TBUGZILLA-2_17_5
+/content-types.html.tmpl/1.3/Thu Oct 24 03:52:35 2002//TBUGZILLA-2_17_6
+/create.html.tmpl/1.16/Thu Jul  3 21:31:31 2003//TBUGZILLA-2_17_6
+/created.html.tmpl/1.9/Thu Jul  3 21:31:31 2003//TBUGZILLA-2_17_6
+/diff-file.html.tmpl/1.1/Wed Jul 30 20:04:59 2003//TBUGZILLA-2_17_6
+/diff-footer.html.tmpl/1.1/Wed Jul 30 20:05:00 2003//TBUGZILLA-2_17_6
+/diff-header.html.tmpl/1.2/Sat Nov  8 18:09:28 2003//TBUGZILLA-2_17_6
+/edit.html.tmpl/1.20/Wed Aug 20 00:45:43 2003//TBUGZILLA-2_17_6
+/list.html.tmpl/1.14/Sat Sep  6 19:23:33 2003//TBUGZILLA-2_17_6
+/show-multiple.html.tmpl/1.11/Thu Jul  3 21:31:31 2003//TBUGZILLA-2_17_6
+/updated.html.tmpl/1.9/Thu Jul  3 21:31:31 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/attachment/CVS/Tag b/template/en/default/attachment/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/attachment/CVS/Tag
+++ b/template/en/default/attachment/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/attachment/diff-header.html.tmpl b/template/en/default/attachment/diff-header.html.tmpl
index c1b70173e5486f145e9650b6965843114143c254..4069cc21bdc84ab4afc7f931e00ad40d8a5045b1 100644
--- a/template/en/default/attachment/diff-header.html.tmpl
+++ b/template/en/default/attachment/diff-header.html.tmpl
@@ -21,7 +21,11 @@
 
 [%# Define strings that will serve as the title and header of this page %]
 
-[% title = BLOCK %]Attachment #[% attachid %] for Bug #[% bugid %][% END %]
+[% PROCESS global/variables.none.tmpl %]
+
+[% title = BLOCK %]
+  Attachment #[% attachid %] for [% terms.Bug %] #[% bugid %]
+[% END %]
 
 [% style = BLOCK %]
 .file_head {
@@ -192,7 +196,7 @@ tbody.file pre:empty {
       <a href="[% new_url %]">[% new_desc FILTER html %]</a>
       (<a href="[% new_url %]">#[% newid %]</a>)
     [% END %]
-    for <a href="show_bug.cgi?id=[% bugid %]">Bug #[% bugid %]</a>
+    for <a href="show_bug.cgi?id=[% bugid %]">[% terms.Bug %] #[% bugid %]</a>
   [% END %]
   [% h2 = BLOCK %]
     [% bugsummary FILTER html %]
@@ -290,12 +294,12 @@ tbody.file pre:empty {
 <h2 class="warning">Warning: 
   [% IF warning == "interdiff1" %]
   this difference between two patches may show things in the wrong places due
-  to a limitation in Bugzilla when comparing patches with different sets of
-  files.
+  to a limitation in [% terms.Bugzilla %] when comparing patches with different
+  sets of files.
   [% END %]
   [% IF warning == "interdiff2" %]
   this difference between two patches may be inaccurate due to a limitation in
-  Bugzilla when comparing patches made against different revisions.
+  [% terms.Bugzilla %] when comparing patches made against different revisions.
   [% END %]
 </h2>
 [% END %]
diff --git a/template/en/default/bug/CVS/Entries b/template/en/default/bug/CVS/Entries
index 470cc8c3c223c95aff58d986732163266e374172..f7128460fbf9e14de75f82de57e1e686492f2f9b 100644
--- a/template/en/default/bug/CVS/Entries
+++ b/template/en/default/bug/CVS/Entries
@@ -1,14 +1,14 @@
-/choose.html.tmpl/1.5/Thu Jul  3 21:31:35 2003//TBUGZILLA-2_17_5
-/comments.html.tmpl/1.8/Tue Sep  2 00:11:25 2003//TBUGZILLA-2_17_5
-/dependency-graph.html.tmpl/1.8/Thu Jul  3 21:31:36 2003//TBUGZILLA-2_17_5
-/dependency-tree.html.tmpl/1.8/Sat Sep  6 19:23:24 2003//TBUGZILLA-2_17_5
-/edit.html.tmpl/1.36/Wed Oct 29 04:32:39 2003//TBUGZILLA-2_17_5
-/knob.html.tmpl/1.1/Wed Oct 29 04:32:39 2003//TBUGZILLA-2_17_5
-/navigate.html.tmpl/1.4/Thu Jul  3 21:31:37 2003//TBUGZILLA-2_17_5
-/show-multiple.html.tmpl/1.13/Sat Sep  6 19:23:23 2003//TBUGZILLA-2_17_5
-/show.html.tmpl/1.3/Thu Jul  3 21:31:37 2003//TBUGZILLA-2_17_5
-/show.xml.tmpl/1.3/Tue Jun  3 09:48:05 2003//TBUGZILLA-2_17_5
-/time.html.tmpl/1.1/Sun Oct 13 04:26:14 2002//TBUGZILLA-2_17_5
+/choose.html.tmpl/1.5/Thu Jul  3 21:31:35 2003//TBUGZILLA-2_17_6
+/comments.html.tmpl/1.8/Tue Sep  2 00:11:25 2003//TBUGZILLA-2_17_6
+/dependency-graph.html.tmpl/1.8/Thu Jul  3 21:31:36 2003//TBUGZILLA-2_17_6
+/dependency-tree.html.tmpl/1.8/Sat Sep  6 19:23:24 2003//TBUGZILLA-2_17_6
+/edit.html.tmpl/1.36/Wed Oct 29 04:32:39 2003//TBUGZILLA-2_17_6
+/knob.html.tmpl/1.1/Wed Oct 29 04:32:39 2003//TBUGZILLA-2_17_6
+/navigate.html.tmpl/1.4/Thu Jul  3 21:31:37 2003//TBUGZILLA-2_17_6
+/show-multiple.html.tmpl/1.13/Sat Sep  6 19:23:23 2003//TBUGZILLA-2_17_6
+/show.html.tmpl/1.3/Thu Jul  3 21:31:37 2003//TBUGZILLA-2_17_6
+/show.xml.tmpl/1.3/Tue Jun  3 09:48:05 2003//TBUGZILLA-2_17_6
+/time.html.tmpl/1.1/Sun Oct 13 04:26:14 2002//TBUGZILLA-2_17_6
 D/activity////
 D/create////
 D/process////
diff --git a/template/en/default/bug/CVS/Tag b/template/en/default/bug/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/bug/CVS/Tag
+++ b/template/en/default/bug/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/bug/activity/CVS/Entries b/template/en/default/bug/activity/CVS/Entries
index 205d143991d5d13af14839adbfaeb4b9943bce59..ae5d7d896d216b886aff84fb1c3f860522497678 100644
--- a/template/en/default/bug/activity/CVS/Entries
+++ b/template/en/default/bug/activity/CVS/Entries
@@ -1,3 +1,3 @@
-/show.html.tmpl/1.5/Thu Jul  3 21:31:33 2003//TBUGZILLA-2_17_5
-/table.html.tmpl/1.5/Sat Sep  6 19:23:31 2003//TBUGZILLA-2_17_5
+/show.html.tmpl/1.5/Thu Jul  3 21:31:33 2003//TBUGZILLA-2_17_6
+/table.html.tmpl/1.5/Sat Sep  6 19:23:31 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/bug/activity/CVS/Tag b/template/en/default/bug/activity/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/bug/activity/CVS/Tag
+++ b/template/en/default/bug/activity/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/bug/create/CVS/Entries b/template/en/default/bug/create/CVS/Entries
index 72d9a5984947376114d08c48087c8f70ab4e5138..74a54f98a090b192f3014f18b3a10d286dc0ccaa 100644
--- a/template/en/default/bug/create/CVS/Entries
+++ b/template/en/default/bug/create/CVS/Entries
@@ -1,8 +1,8 @@
-/comment-guided.txt.tmpl/1.1/Wed Oct 23 22:15:16 2002//TBUGZILLA-2_17_5
-/comment.txt.tmpl/1.2/Mon May  6 19:17:06 2002//TBUGZILLA-2_17_5
-/create-guided.html.tmpl/1.14/Sat Oct 18 22:24:51 2003//TBUGZILLA-2_17_5
-/create.html.tmpl/1.21/Wed Sep 17 22:13:06 2003//TBUGZILLA-2_17_5
-/created.html.tmpl/1.7/Thu Jul  3 21:31:40 2003//TBUGZILLA-2_17_5
-/make-template.html.tmpl/1.5/Thu Jul  3 21:31:40 2003//TBUGZILLA-2_17_5
-/user-message.html.tmpl/1.2/Thu Jul  3 21:31:40 2003//TBUGZILLA-2_17_5
+/comment-guided.txt.tmpl/1.1/Wed Oct 23 22:15:16 2002//TBUGZILLA-2_17_6
+/comment.txt.tmpl/1.2/Mon May  6 19:17:06 2002//TBUGZILLA-2_17_6
+/create-guided.html.tmpl/1.14/Sat Oct 18 22:24:51 2003//TBUGZILLA-2_17_6
+/create.html.tmpl/1.21/Wed Sep 17 22:13:06 2003//TBUGZILLA-2_17_6
+/created.html.tmpl/1.7/Thu Jul  3 21:31:40 2003//TBUGZILLA-2_17_6
+/make-template.html.tmpl/1.5/Thu Jul  3 21:31:40 2003//TBUGZILLA-2_17_6
+/user-message.html.tmpl/1.2/Thu Jul  3 21:31:40 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/bug/create/CVS/Tag b/template/en/default/bug/create/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/bug/create/CVS/Tag
+++ b/template/en/default/bug/create/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/bug/process/CVS/Entries b/template/en/default/bug/process/CVS/Entries
index 3f2c01f8e6aac5376cd94c0bca33aeb6923794c2..682f9af39af0bf8d0e3f499a33f6891619e750b7 100644
--- a/template/en/default/bug/process/CVS/Entries
+++ b/template/en/default/bug/process/CVS/Entries
@@ -1,8 +1,8 @@
-/bugmail.html.tmpl/1.3/Sat Sep  6 19:23:28 2003//TBUGZILLA-2_17_5
-/confirm-duplicate.html.tmpl/1.6/Thu Jul  3 21:31:43 2003//TBUGZILLA-2_17_5
-/header.html.tmpl/1.2/Thu Jul  3 21:31:44 2003//TBUGZILLA-2_17_5
-/midair.html.tmpl/1.8/Thu Jul  3 21:31:44 2003//TBUGZILLA-2_17_5
-/next.html.tmpl/1.3/Thu Jul  3 21:31:44 2003//TBUGZILLA-2_17_5
-/results.html.tmpl/1.6/Thu Jul  3 21:31:44 2003//TBUGZILLA-2_17_5
-/verify-new-product.html.tmpl/1.11/Sat Sep  6 19:23:27 2003//TBUGZILLA-2_17_5
+/bugmail.html.tmpl/1.3/Sat Sep  6 19:23:28 2003//TBUGZILLA-2_17_6
+/confirm-duplicate.html.tmpl/1.6/Thu Jul  3 21:31:43 2003//TBUGZILLA-2_17_6
+/header.html.tmpl/1.2/Thu Jul  3 21:31:44 2003//TBUGZILLA-2_17_6
+/midair.html.tmpl/1.8/Thu Jul  3 21:31:44 2003//TBUGZILLA-2_17_6
+/next.html.tmpl/1.3/Thu Jul  3 21:31:44 2003//TBUGZILLA-2_17_6
+/results.html.tmpl/1.6/Thu Jul  3 21:31:44 2003//TBUGZILLA-2_17_6
+/verify-new-product.html.tmpl/1.11/Sat Sep  6 19:23:27 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/bug/process/CVS/Tag b/template/en/default/bug/process/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/bug/process/CVS/Tag
+++ b/template/en/default/bug/process/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/bug/votes/CVS/Entries b/template/en/default/bug/votes/CVS/Entries
index db832b96e731d75f4f0a0faf2280a349522d96b0..d6a494260c9affa4fa836f20f3f5dd0308d565e2 100644
--- a/template/en/default/bug/votes/CVS/Entries
+++ b/template/en/default/bug/votes/CVS/Entries
@@ -1,4 +1,4 @@
-/delete-all.html.tmpl/1.5/Thu Jul  3 21:31:46 2003//TBUGZILLA-2_17_5
-/list-for-bug.html.tmpl/1.8/Thu Jul  3 21:31:46 2003//TBUGZILLA-2_17_5
-/list-for-user.html.tmpl/1.11/Sun Sep 28 20:42:33 2003//TBUGZILLA-2_17_5
+/delete-all.html.tmpl/1.5/Thu Jul  3 21:31:46 2003//TBUGZILLA-2_17_6
+/list-for-bug.html.tmpl/1.8/Thu Jul  3 21:31:46 2003//TBUGZILLA-2_17_6
+/list-for-user.html.tmpl/1.11/Sun Sep 28 20:42:33 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/bug/votes/CVS/Tag b/template/en/default/bug/votes/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/bug/votes/CVS/Tag
+++ b/template/en/default/bug/votes/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/flag/CVS/Entries b/template/en/default/flag/CVS/Entries
index ff2b8464533105565ba737ef12ae96d1779ae517..5b9acc5fad05f4d2d55058fe3ca61b3983bfa2be 100644
--- a/template/en/default/flag/CVS/Entries
+++ b/template/en/default/flag/CVS/Entries
@@ -1,2 +1,2 @@
-/list.html.tmpl/1.11/Tue Jun  3 09:48:07 2003//TBUGZILLA-2_17_5
+/list.html.tmpl/1.11/Tue Jun  3 09:48:07 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/flag/CVS/Tag b/template/en/default/flag/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/flag/CVS/Tag
+++ b/template/en/default/flag/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/global/CVS/Entries b/template/en/default/global/CVS/Entries
index eba61ee22dcc03ffaf017bf33ebc3e837e88db7c..15f2876210e94284397858facae2587f8132fe45 100644
--- a/template/en/default/global/CVS/Entries
+++ b/template/en/default/global/CVS/Entries
@@ -1,18 +1,18 @@
-/banner.html.tmpl/1.5/Thu Jul  3 21:31:49 2003//TBUGZILLA-2_17_5
-/choose-product.html.tmpl/1.9/Thu Jul  3 21:31:49 2003//TBUGZILLA-2_17_5
-/code-error.html.tmpl/1.34/Sat Oct 18 22:37:29 2003//TBUGZILLA-2_17_5
-/confirm-user-match.html.tmpl/1.6/Sat Sep  6 19:23:21 2003//TBUGZILLA-2_17_5
-/field-descs.none.tmpl/1.2/Thu Jul  3 21:31:50 2003//TBUGZILLA-2_17_5
-/footer.html.tmpl/1.10/Thu Jul  3 21:31:50 2003//TBUGZILLA-2_17_5
-/header.html.tmpl/1.20/Thu Jul  3 21:31:50 2003//TBUGZILLA-2_17_5
-/help-header.html.tmpl/1.2/Fri Dec 20 07:21:41 2002//TBUGZILLA-2_17_5
-/help.html.tmpl/1.2/Fri Dec 20 07:21:41 2002//TBUGZILLA-2_17_5
-/hidden-fields.html.tmpl/1.7/Thu Jul  3 21:31:51 2003//TBUGZILLA-2_17_5
-/message.html.tmpl/1.6/Thu Jul  3 21:31:51 2003//TBUGZILLA-2_17_5
-/messages.html.tmpl/1.15/Tue Sep  9 22:24:12 2003//TBUGZILLA-2_17_5
-/select-menu.html.tmpl/1.3/Sat Sep  6 19:23:21 2003//TBUGZILLA-2_17_5
-/site-navigation.html.tmpl/1.8/Thu Jul  3 21:31:51 2003//TBUGZILLA-2_17_5
-/useful-links.html.tmpl/1.19/Sat Sep  6 19:23:21 2003//TBUGZILLA-2_17_5
-/user-error.html.tmpl/1.40/Thu Oct 30 17:29:49 2003//TBUGZILLA-2_17_5
-/variables.none.tmpl/1.1/Thu Jul  3 21:32:11 2003//TBUGZILLA-2_17_5
+/banner.html.tmpl/1.5/Thu Jul  3 21:31:49 2003//TBUGZILLA-2_17_6
+/choose-product.html.tmpl/1.9/Thu Jul  3 21:31:49 2003//TBUGZILLA-2_17_6
+/code-error.html.tmpl/1.34/Sat Oct 18 22:37:29 2003//TBUGZILLA-2_17_6
+/confirm-user-match.html.tmpl/1.6/Sat Sep  6 19:23:21 2003//TBUGZILLA-2_17_6
+/field-descs.none.tmpl/1.2/Thu Jul  3 21:31:50 2003//TBUGZILLA-2_17_6
+/footer.html.tmpl/1.10/Thu Jul  3 21:31:50 2003//TBUGZILLA-2_17_6
+/header.html.tmpl/1.20/Thu Jul  3 21:31:50 2003//TBUGZILLA-2_17_6
+/help-header.html.tmpl/1.2/Fri Dec 20 07:21:41 2002//TBUGZILLA-2_17_6
+/help.html.tmpl/1.2/Fri Dec 20 07:21:41 2002//TBUGZILLA-2_17_6
+/hidden-fields.html.tmpl/1.7/Thu Jul  3 21:31:51 2003//TBUGZILLA-2_17_6
+/message.html.tmpl/1.6/Thu Jul  3 21:31:51 2003//TBUGZILLA-2_17_6
+/messages.html.tmpl/1.16/Sat Nov  8 18:09:26 2003//TBUGZILLA-2_17_6
+/select-menu.html.tmpl/1.3/Sat Sep  6 19:23:21 2003//TBUGZILLA-2_17_6
+/site-navigation.html.tmpl/1.9/Sat Nov  8 21:49:18 2003//TBUGZILLA-2_17_6
+/useful-links.html.tmpl/1.20/Sat Nov  8 21:49:18 2003//TBUGZILLA-2_17_6
+/user-error.html.tmpl/1.41/Sat Nov  8 18:09:26 2003//TBUGZILLA-2_17_6
+/variables.none.tmpl/1.1/Thu Jul  3 21:32:11 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/global/CVS/Tag b/template/en/default/global/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/global/CVS/Tag
+++ b/template/en/default/global/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl
index 41dd71f6cf6a55c0424b9b225459bef769cf3afd..750bc5cfaa8da64c0293117bc5bb14902f7c46a5 100644
--- a/template/en/default/global/messages.html.tmpl
+++ b/template/en/default/global/messages.html.tmpl
@@ -54,8 +54,9 @@
     OK, the <b>[% namedcmd FILTER html %]</b> query is gone.
 
   [% ELSIF message_tag == "buglist_sorted_by_relevance" %]
-    Bugs on this list are sorted by relevance, with the most relevant bugs
-    at the top.  Only the 200 most relevant bugs are shown.
+    [% terms.Bugs %] on this list are sorted by relevance, with the most
+    relevant [% terms.bugs %] at the top.  Only the 200 most relevant 
+    [%+ terms.bugs %] are shown.
 
   [% ELSIF message_tag == "change_columns" %]
     [% title = "Change columns" %]
diff --git a/template/en/default/global/site-navigation.html.tmpl b/template/en/default/global/site-navigation.html.tmpl
index be64c2a86c1a854796d3da9558ac3e0fe4d2e32b..36c73f292ad4741eeeaaa951b0cd36a2343a708a 100644
--- a/template/en/default/global/site-navigation.html.tmpl
+++ b/template/en/default/global/site-navigation.html.tmpl
@@ -72,19 +72,17 @@
   [% END %]
 
 
-  [%# *** Preset Queries *** %]
+  [%# *** Saved Searches *** %]
   [% IF user.showmybugslink %]
     [% user_login = user.login FILTER url_quote %]
-    <link rel="Preset&nbsp;Queries" title="My [% terms.Bugs %]"                 
+    <link rel="Saved&nbsp;Searches" title="My [% terms.Bugs %]"
           href="[% Param('mybugstemplate').replace('%userid%', user_login) %]">
   [% END %]
 
   [% FOREACH q = user.queries %]
-     [% IF q.linkinfooter %]
-        <link rel="Preset&nbsp;Queries" 
-              title="[% q.name FILTER html %]"
-              href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER url_quote %]">
-     [% END %]        
+    <link rel="Saved&nbsp;Searches" 
+          title="[% q.name FILTER html %]"
+          href="buglist.cgi?cmdtype=runnamed&amp;namedcmd=[% q.name FILTER url_quote %]">
   [% END %]
 
   [%# *** Bugzilla Administration Tools *** %]
diff --git a/template/en/default/global/useful-links.html.tmpl b/template/en/default/global/useful-links.html.tmpl
index 135dad987efcdd59604d17575c903cc3a617e4e0..cf84abbb2a3f552db68426882032350db123f85f 100644
--- a/template/en/default/global/useful-links.html.tmpl
+++ b/template/en/default/global/useful-links.html.tmpl
@@ -33,7 +33,7 @@
       
       <td valign="middle" nowrap="nowrap">
         <a href="enter_bug.cgi">New</a> | 
-        <a href="query.cgi">Query</a> |
+        <a href="query.cgi">Search</a> |
         
         <input type="submit" value="Find"> [% terms.bug %] # 
         <input name="id" size="6"> | 
@@ -78,22 +78,12 @@
       </td>
     </tr> 
 
-    [%# Preset queries %]
+    [%# Saved searches %]
     
-    [% preset_queries = user.showmybugslink %]
-    [% IF NOT preset_queries %]
-       [% FOREACH q = user.queries %]
-         [% IF q.linkinfooter %]
-           [% preset_queries = 1 %]
-           [% LAST %]
-         [% END %]
-       [% END %]
-     [% END %]
-      
     <tr>
-      [% IF preset_queries %]
+      [% IF user.showmybugslink OR user.queries.size %]
         <td>
-          Preset&nbsp;Queries:
+          Saved&nbsp;Searches:
         </td>
       [% END %]
       
diff --git a/template/en/default/global/user-error.html.tmpl b/template/en/default/global/user-error.html.tmpl
index a988102a8177240ee51dfa2a56dd2119d92f4b8f..1bbd00efcbc7d05e43b34b13b2865788133527e2 100644
--- a/template/en/default/global/user-error.html.tmpl
+++ b/template/en/default/global/user-error.html.tmpl
@@ -152,8 +152,8 @@
 
   [% ELSIF error == "dupe_invalid_bug_id" %]
     [% title = BLOCK %]Valid [% terms.Bug %] Number Required[% END %]
-    You must specify a valid bug number of which this [% terms.bug %]
-    is a duplicate.  The [% terms.bug %] has not been changed.
+    You must specify a valid [% terms.bug %] number of which this 
+    [%+ terms.bug %] is a duplicate.  The [% terms.bug %] has not been changed.
 
   [% ELSIF error == "dupe_of_self_disallowed" %]
     [% title = "Nice Try..." %]
@@ -171,8 +171,8 @@
 
   [% ELSIF error == "entry_access_denied" %]
     [% title = "Permission Denied" %]
-    Sorry; you do not have the permissions necessary to enter [% terms.abug %] against
-    the [% product FILTER html %] product.
+    Sorry; you do not have the permissions necessary to enter [% terms.abug %]
+    against the [% product FILTER html %] product.
 
   [% ELSIF error == "file_not_specified" %]
     [% title = "No File Specified" %]
@@ -206,7 +206,7 @@
 
     You asked [% requestee.identity FILTER html %]
     for <code>[% flag_type.name FILTER html %]</code> on 
-    [% terms.bug %]&nbsp;[% bug_id FILTER html %],
+    [%+ terms.bug %]&nbsp;[% bug_id FILTER html %],
     attachment [% attach_id FILTER html %], but that attachment is restricted 
     to users
     in the [% Param("insidergroup") FILTER html %] group, and the user
@@ -276,7 +276,7 @@
     [% title = "Invalid Email Address" %]
     The e-mail address you entered(<b>[% addr FILTER html %]</b>) 
     didn't pass our syntax checking for a legal email address. 
-    [% Param('emailregexpdesc') %]
+    [%+ Param('emailregexpdesc') %]
     It must also not contain any of these special characters:
     <tt>\ ( ) &amp; &lt; &gt; , ; : &quot; [ ]</tt>, or any whitespace.
     
@@ -288,8 +288,7 @@
   [% ELSIF error == "illegal_group_control_combination" %]
     [% title = "Your Group Control Combination Is Illegal" %]
     Your group control combination for group &quot;
-    [% groupname FILTER html %]
-    &quot; is illegal.
+    [% groupname FILTER html %]&quot; is illegal.
 
   [% ELSIF error == "illegal_is_obsolete" %]
     [% title = "Your Query Makes No Sense" %]
@@ -342,7 +341,8 @@
     [% END %]
     If you are trying to use QuickSearch, you need to enable JavaScript 
     in your browser. To help us fix this limitation, add your comments to 
-    <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">bug 70907</a>.
+    <a href="http://bugzilla.mozilla.org/show_bug.cgi?id=70907">b<!--
+    word broken up to pass test 009 -->ug 70907</a>.
 
   [% ELSIF error == "invalid_changedsince" %]
     [% title = "Invalid 'Changed Since'" %]
diff --git a/template/en/default/list/CVS/Entries b/template/en/default/list/CVS/Entries
index 3d496c036d73258cb0d7fb66ba60cffd71640156..6d24ac9c2556c571509aeac599088d0f1c8fe503 100644
--- a/template/en/default/list/CVS/Entries
+++ b/template/en/default/list/CVS/Entries
@@ -1,11 +1,11 @@
-/change-columns.html.tmpl/1.11/Sat Sep  6 19:23:19 2003//TBUGZILLA-2_17_5
-/edit-multiple.html.tmpl/1.12/Thu Jul  3 21:31:55 2003//TBUGZILLA-2_17_5
-/list-simple.html.tmpl/1.6/Thu Jul  3 21:31:56 2003//TBUGZILLA-2_17_5
-/list.csv.tmpl/1.3/Thu Jul  3 21:31:55 2003//TBUGZILLA-2_17_5
-/list.html.tmpl/1.14/Sat Sep  6 19:23:19 2003//TBUGZILLA-2_17_5
-/list.js.tmpl/1.1/Tue Apr  1 07:13:19 2003//TBUGZILLA-2_17_5
-/list.rdf.tmpl/1.3/Mon Apr  7 20:13:30 2003//TBUGZILLA-2_17_5
-/quips.html.tmpl/1.11/Thu Jul  3 21:31:57 2003//TBUGZILLA-2_17_5
-/server-push.html.tmpl/1.3/Thu Jul  3 21:31:57 2003//TBUGZILLA-2_17_5
-/table.html.tmpl/1.15/Wed Sep  3 02:03:44 2003//TBUGZILLA-2_17_5
+/change-columns.html.tmpl/1.11/Sat Sep  6 19:23:19 2003//TBUGZILLA-2_17_6
+/edit-multiple.html.tmpl/1.12/Thu Jul  3 21:31:55 2003//TBUGZILLA-2_17_6
+/list-simple.html.tmpl/1.6/Thu Jul  3 21:31:56 2003//TBUGZILLA-2_17_6
+/list.csv.tmpl/1.3/Thu Jul  3 21:31:55 2003//TBUGZILLA-2_17_6
+/list.html.tmpl/1.15/Sat Nov  8 21:49:20 2003//TBUGZILLA-2_17_6
+/list.js.tmpl/1.2/Sat Nov  8 18:04:36 2003//TBUGZILLA-2_17_6
+/list.rdf.tmpl/1.3/Mon Apr  7 20:13:30 2003//TBUGZILLA-2_17_6
+/quips.html.tmpl/1.11/Thu Jul  3 21:31:57 2003//TBUGZILLA-2_17_6
+/server-push.html.tmpl/1.3/Thu Jul  3 21:31:57 2003//TBUGZILLA-2_17_6
+/table.html.tmpl/1.15/Wed Sep  3 02:03:44 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/list/CVS/Tag b/template/en/default/list/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/list/CVS/Tag
+++ b/template/en/default/list/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl
index a61bdef9810826688eb51115dc0481fed19089fa..4d5a48c795ef6bb6998aac0bfb071db84735badc 100644
--- a/template/en/default/list/list.html.tmpl
+++ b/template/en/default/list/list.html.tmpl
@@ -25,7 +25,11 @@
 
 [% PROCESS global/variables.none.tmpl %]
 
-[% DEFAULT title = "$terms.Bug List" %]
+[% title = "$terms.Bug List" %]
+[% IF searchname %]
+  [% title = title _ ": " _ searchname FILTER html %]
+[% END %]
+
 [% style_urls = [ "css/buglist.css" ] %]
 [% qorder = order FILTER url_quote IF order %]
 [% message = "buglist_sorted_by_relevance" IF sorted_by_relevance %]
@@ -132,33 +136,59 @@
 [%############################################################################%]
 
 [% IF bugs.size > 0 %]
-  <form method="post" action="long_list.cgi">
-    <input type="hidden" name="buglist" value="[% buglist %]">
-    <input type="submit" value="Long Format">
-    &nbsp;&nbsp;
-    <a href="buglist.cgi?
-             [% urlquerypart FILTER html %]&amp;ctype=csv">CSV</a> &nbsp;&nbsp;
-    <a href="colchange.cgi?
-                [% urlquerypart FILTER html %]">Change Columns</a> &nbsp;&nbsp;
-
-    [% IF bugs.size > 1 && caneditbugs && !dotweak %]
-      <a href="buglist.cgi?[% urlquerypart FILTER html %]
-        [%- "&order=$qorder" FILTER html IF order %]&amp;tweak=1">Change Several&nbsp;
-        [% terms.Bugs %] at Once</a>
-      &nbsp;&nbsp;
-    [% END %]
-
-    [% IF bugowners %]
-      <a href="mailto:[% bugowners FILTER html %]">Send 
-      Mail to [% terms.Bug %] Owners</a> 
-      &nbsp;&nbsp;
-    [% END %]
-
-    <a href="query.cgi?
-               [% urlquerypart FILTER html %]">Edit this Query</a> &nbsp;&nbsp;
-
-  </form>
-
+  <p>
+  <table>
+    <tr>
+      <td valign="top">
+        <form method="post" action="long_list.cgi">
+          <input type="hidden" name="buglist" value="[% buglist %]">
+          <input type="submit" value="Long Format">
+        </form>
+      </td>
+      <td>&nbsp;</td>
+      <td valign="top">
+        <a href="buglist.cgi?
+        [% urlquerypart FILTER html %]&amp;ctype=csv">CSV</a> |
+        <a href="colchange.cgi?
+        [% urlquerypart FILTER html %]">Change&nbsp;Columns</a> |
+
+        [% IF bugs.size > 1 && caneditbugs && !dotweak %]
+          <a href="buglist.cgi?[% urlquerypart FILTER html %]
+            [%- "&order=$qorder" FILTER html IF order %]&amp;tweak=1"
+            >Change&nbsp;Several&nbsp;[% terms.Bugs %]&nbsp;at&nbsp;Once</a>
+          |
+        [% END %]
+
+        [% IF bugowners %]
+          <a href="mailto:
+            [% bugowners FILTER html %]">Send&nbsp;Mail&nbsp;to&nbsp;[% terms.Bug %]&nbsp;Owners</a> |
+        [% END %]
+
+        <a href="query.cgi?[% urlquerypart FILTER html %]">Edit&nbsp;Search</a>
+      </td>
+      [% IF searchname %]
+        <td valign="top" nowrap="nowrap">
+          |
+          <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
+                  [% searchname FILTER html %]">Forget&nbsp;Search&nbsp;'
+                  [% searchname FILTER html %]'</a>
+        </td>
+      [% ELSE %]
+        <td>&nbsp;</td>
+        <td>
+          <form method="get" action="buglist.cgi">
+            <input type="submit" value="Remember search"> as 
+            <input type="hidden" name="newquery" 
+                   value="[% urlquerypart FILTER html %]">
+            <input type="hidden" name="cmdtype" value="doit">
+            <input type="hidden" name="remtype" value="asnamed">
+            <input type="text" name="newqueryname" size="20"> 
+          </form> 
+        </td>
+      [% END %]  
+    </tr>
+  </table>
+  </p>  
 [% END %]
 
 
diff --git a/template/en/default/list/list.js.tmpl b/template/en/default/list/list.js.tmpl
index 8dde0c5b7a1c4adce657d6fd9c2c7ffcc75894ee..e6bc794c2bcf26cf1ead43b7c2d815c3b512330f 100644
--- a/template/en/default/list/list.js.tmpl
+++ b/template/en/default/list/list.js.tmpl
@@ -18,6 +18,11 @@
   #
   # Contributor(s): Gervase Markham <gerv@gerv.net>
   #%]
+
+// Note: only publicly-accessible bugs (those not in any group) will be
+// listed when using this JavaScript format. This is to prevent malicious
+// sites stealing information about secure bugs.
+  
 bugs = new Array; 
 
 [% FOREACH bug = bugs %]
diff --git a/template/en/default/pages/CVS/Entries b/template/en/default/pages/CVS/Entries
index fc0c85d3d0f03c6043659d54be6bd0b2f206bec2..18fb997dad333321dd819b90b30ee7a1350e1fee 100644
--- a/template/en/default/pages/CVS/Entries
+++ b/template/en/default/pages/CVS/Entries
@@ -1,3 +1,3 @@
-/linked.html.tmpl/1.3/Thu Nov 28 10:49:58 2002//TBUGZILLA-2_17_5
-/linkify.html.tmpl/1.3/Thu Jul  3 21:31:59 2003//TBUGZILLA-2_17_5
+/linked.html.tmpl/1.3/Thu Nov 28 10:49:58 2002//TBUGZILLA-2_17_6
+/linkify.html.tmpl/1.3/Thu Jul  3 21:31:59 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/pages/CVS/Tag b/template/en/default/pages/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/pages/CVS/Tag
+++ b/template/en/default/pages/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/reports/CVS/Entries b/template/en/default/reports/CVS/Entries
index fc108f01e7362e9b345b06b004ddcf0442e039b3..8acca275784ac3d60066ccacbce44de170f16d19 100644
--- a/template/en/default/reports/CVS/Entries
+++ b/template/en/default/reports/CVS/Entries
@@ -1,22 +1,22 @@
-/chart.csv.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_5
-/chart.html.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_5
-/chart.png.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_5
-/components.html.tmpl/1.7/Sat Sep  6 19:23:15 2003//TBUGZILLA-2_17_5
-/create-chart.html.tmpl/1.1/Wed Jun 25 23:23:02 2003//TBUGZILLA-2_17_5
-/duplicates-simple.html.tmpl/1.3/Sat Sep  6 19:23:16 2003//TBUGZILLA-2_17_5
-/duplicates-table.html.tmpl/1.9/Sun Oct 26 14:01:04 2003//TBUGZILLA-2_17_5
-/duplicates.html.tmpl/1.13/Sun Oct 26 14:01:04 2003//TBUGZILLA-2_17_5
-/duplicates.rdf.tmpl/1.1/Tue Nov  5 01:54:15 2002//TBUGZILLA-2_17_5
-/edit-series.html.tmpl/1.1/Wed Jun 25 23:23:02 2003//TBUGZILLA-2_17_5
-/keywords.html.tmpl/1.5/Thu Jul  3 21:32:02 2003//TBUGZILLA-2_17_5
-/menu.html.tmpl/1.4/Thu Jul  3 21:32:02 2003//TBUGZILLA-2_17_5
-/report-bar.png.tmpl/1.4/Thu Jul  3 21:32:03 2003//TBUGZILLA-2_17_5
-/report-line.png.tmpl/1.4/Thu Jul  3 21:32:03 2003//TBUGZILLA-2_17_5
-/report-pie.png.tmpl/1.3/Mon Jan  6 07:54:22 2003//TBUGZILLA-2_17_5
-/report-table.csv.tmpl/1.5/Sat Sep  6 19:23:16 2003//TBUGZILLA-2_17_5
-/report-table.html.tmpl/1.8/Sat Sep  6 19:23:16 2003//TBUGZILLA-2_17_5
-/report.csv.tmpl/1.2/Mon Jan  6 07:54:22 2003//TBUGZILLA-2_17_5
-/report.html.tmpl/1.8/Sun Sep 14 23:00:08 2003//TBUGZILLA-2_17_5
-/series-common.html.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_5
-/series.html.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_5
+/chart.csv.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_6
+/chart.html.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_6
+/chart.png.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_6
+/components.html.tmpl/1.7/Sat Sep  6 19:23:15 2003//TBUGZILLA-2_17_6
+/create-chart.html.tmpl/1.2/Sat Nov  8 00:25:31 2003//TBUGZILLA-2_17_6
+/duplicates-simple.html.tmpl/1.3/Sat Sep  6 19:23:16 2003//TBUGZILLA-2_17_6
+/duplicates-table.html.tmpl/1.9/Sun Oct 26 14:01:04 2003//TBUGZILLA-2_17_6
+/duplicates.html.tmpl/1.13/Sun Oct 26 14:01:04 2003//TBUGZILLA-2_17_6
+/duplicates.rdf.tmpl/1.1/Tue Nov  5 01:54:15 2002//TBUGZILLA-2_17_6
+/edit-series.html.tmpl/1.1/Wed Jun 25 23:23:02 2003//TBUGZILLA-2_17_6
+/keywords.html.tmpl/1.5/Thu Jul  3 21:32:02 2003//TBUGZILLA-2_17_6
+/menu.html.tmpl/1.4/Thu Jul  3 21:32:02 2003//TBUGZILLA-2_17_6
+/report-bar.png.tmpl/1.4/Thu Jul  3 21:32:03 2003//TBUGZILLA-2_17_6
+/report-line.png.tmpl/1.4/Thu Jul  3 21:32:03 2003//TBUGZILLA-2_17_6
+/report-pie.png.tmpl/1.3/Mon Jan  6 07:54:22 2003//TBUGZILLA-2_17_6
+/report-table.csv.tmpl/1.5/Sat Sep  6 19:23:16 2003//TBUGZILLA-2_17_6
+/report-table.html.tmpl/1.8/Sat Sep  6 19:23:16 2003//TBUGZILLA-2_17_6
+/report.csv.tmpl/1.2/Mon Jan  6 07:54:22 2003//TBUGZILLA-2_17_6
+/report.html.tmpl/1.8/Sun Sep 14 23:00:08 2003//TBUGZILLA-2_17_6
+/series-common.html.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_6
+/series.html.tmpl/1.1/Wed Jun 25 23:23:01 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/reports/CVS/Tag b/template/en/default/reports/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/reports/CVS/Tag
+++ b/template/en/default/reports/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/reports/create-chart.html.tmpl b/template/en/default/reports/create-chart.html.tmpl
index fe0b4a76ceac74944b73ecb7082463510c7ce826..441bd9b0638f86b8c276dbb60b4c91ef6028a169 100644
--- a/template/en/default/reports/create-chart.html.tmpl
+++ b/template/en/default/reports/create-chart.html.tmpl
@@ -123,7 +123,7 @@ function subcatSelected() {
 
             <td>
               [% IF series.creator != 0 %]
-                [% IF series.subscribed %]
+                [% IF series.isSubscribed(user.id) %]
                   <input type="submit" value="Unsubscribe" style="width: 12ex;"
                          name="action-unsubscribe[% series.series_id %]">
                 [% ELSE %]
@@ -134,7 +134,7 @@ function subcatSelected() {
             </td>
 
             <td align="center">
-              [% IF user.userid == series.creator OR UserInGroup("admin") %]
+              [% IF user.id == series.creator OR UserInGroup("admin") %]
                <a href="chart.cgi?action=edit&series_id=
                        [% series.series_id %]">Edit</a>
               [% END %]
diff --git a/template/en/default/request/CVS/Entries b/template/en/default/request/CVS/Entries
index 4da271d12abdc3901b68b0ecbf844b3f9386cb4f..3e7eb29b53668d42bf6fcbfa08b80d12d7ded5eb 100644
--- a/template/en/default/request/CVS/Entries
+++ b/template/en/default/request/CVS/Entries
@@ -1,3 +1,3 @@
-/email.txt.tmpl/1.3/Thu Jul  3 21:32:06 2003//TBUGZILLA-2_17_5
-/queue.html.tmpl/1.8/Thu Jul  3 21:32:06 2003//TBUGZILLA-2_17_5
+/email.txt.tmpl/1.3/Thu Jul  3 21:32:06 2003//TBUGZILLA-2_17_6
+/queue.html.tmpl/1.8/Thu Jul  3 21:32:06 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/request/CVS/Tag b/template/en/default/request/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/request/CVS/Tag
+++ b/template/en/default/request/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/search/CVS/Entries b/template/en/default/search/CVS/Entries
index f3894edf020a47e7a57a014f2f1cfd26f4f8d3e4..54268628357435194473b1008e67d5394e2cabb1 100644
--- a/template/en/default/search/CVS/Entries
+++ b/template/en/default/search/CVS/Entries
@@ -1,12 +1,12 @@
-/boolean-charts.html.tmpl/1.6/Wed Sep  3 02:03:46 2003//TBUGZILLA-2_17_5
-/form.html.tmpl/1.19/Sat Sep  6 19:23:12 2003//TBUGZILLA-2_17_5
-/knob.html.tmpl/1.12/Sat Sep  6 19:23:12 2003//TBUGZILLA-2_17_5
-/search-create-series.html.tmpl/1.1/Wed Jun 25 23:23:04 2003//TBUGZILLA-2_17_5
-/search-help.html.tmpl/1.3/Thu Jul  3 21:32:09 2003//TBUGZILLA-2_17_5
-/search-report-graph.html.tmpl/1.6/Sun Sep 14 23:00:09 2003//TBUGZILLA-2_17_5
-/search-report-select.html.tmpl/1.3/Mon Jan  6 07:54:24 2003//TBUGZILLA-2_17_5
-/search-report-table.html.tmpl/1.7/Sun Sep 14 23:00:09 2003//TBUGZILLA-2_17_5
-/search-specific.html.tmpl/1.1/Wed Sep  3 02:03:46 2003//TBUGZILLA-2_17_5
-/search.html.tmpl/1.15/Wed Sep  3 02:03:47 2003//TBUGZILLA-2_17_5
-/tabs.html.tmpl/1.1/Wed Sep  3 02:03:48 2003//TBUGZILLA-2_17_5
+/boolean-charts.html.tmpl/1.6/Wed Sep  3 02:03:46 2003//TBUGZILLA-2_17_6
+/form.html.tmpl/1.19/Sat Sep  6 19:23:12 2003//TBUGZILLA-2_17_6
+/knob.html.tmpl/1.13/Sat Nov  8 21:49:19 2003//TBUGZILLA-2_17_6
+/search-create-series.html.tmpl/1.2/Sat Nov  8 18:09:25 2003//TBUGZILLA-2_17_6
+/search-help.html.tmpl/1.3/Thu Jul  3 21:32:09 2003//TBUGZILLA-2_17_6
+/search-report-graph.html.tmpl/1.6/Sun Sep 14 23:00:09 2003//TBUGZILLA-2_17_6
+/search-report-select.html.tmpl/1.3/Mon Jan  6 07:54:24 2003//TBUGZILLA-2_17_6
+/search-report-table.html.tmpl/1.7/Sun Sep 14 23:00:09 2003//TBUGZILLA-2_17_6
+/search-specific.html.tmpl/1.2/Sat Nov  8 18:09:25 2003//TBUGZILLA-2_17_6
+/search.html.tmpl/1.16/Sat Nov  8 18:09:25 2003//TBUGZILLA-2_17_6
+/tabs.html.tmpl/1.1/Wed Sep  3 02:03:48 2003//TBUGZILLA-2_17_6
 D
diff --git a/template/en/default/search/CVS/Tag b/template/en/default/search/CVS/Tag
index 6d56a75e0f98e74c4cb6ffc01f6640c1a51f7afd..28094d7f4464b25519d09e26b72ca9c0adc2f49b 100644
--- a/template/en/default/search/CVS/Tag
+++ b/template/en/default/search/CVS/Tag
@@ -1 +1 @@
-NBUGZILLA-2_17_5
+NBUGZILLA-2_17_6
diff --git a/template/en/default/search/knob.html.tmpl b/template/en/default/search/knob.html.tmpl
index 8386eff042bfd365447a1feab4099f8200461304..cf40d071154875ae8f08a276ed1b790cd22206a7 100644
--- a/template/en/default/search/knob.html.tmpl
+++ b/template/en/default/search/knob.html.tmpl
@@ -31,112 +31,7 @@
    "Assignee"     => "Assignee",
    "Last Changed" => "Last Changed" } %]
 
-<br>
-[% IF NOT user %]
-  <input type="hidden" name="cmdtype" value="doit">
-[% ELSE %]
-  <script type="text/javascript"> <!--
-    function remCheckboxChanged() {
-      if (document.queryform.remember.checked == true) {
-        document.queryform.remtype[0].disabled = false;
-        document.queryform.remtype[1].disabled = false;
-        remTypeChanged();
-      }
-      else {
-        document.queryform.remtype[0].disabled = true;
-        document.queryform.remtype[1].disabled = true;
-        document.queryform.newqueryname.disabled = true;
-        document.queryform.tofooter.disabled = true;
-      }
-    }
-
-    function remTypeChanged() {
-      if (document.queryform.remtype[0].checked == true) {
-        document.queryform.newqueryname.disabled = false;
-        document.queryform.tofooter.disabled = false;
-      }
-      else {
-        document.queryform.newqueryname.disabled = true;
-        document.queryform.tofooter.disabled = true;
-      }
-    }
-
-    function selectDoRem() {
-      document.queryform.cmdtype[1].checked = true;
-    }
-    // -->
-  </script>
-
-  <table>
-    [% IF namedqueries.size > 0 %]
-      <tr>
-        <td>
-          <input type="radio" id="cmdtype-doit"
-                 name="cmdtype" value="doit" checked="checked">
-          <label for="cmdtype-doit">Run this search</label>
-        </td>
-        <td>&nbsp;</td>
-      </tr>
-    [% END %]
-    <tr>
-      <td valign="top">
-        [% IF namedqueries.size > 0 %]
-          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-        [% END %]
-        <input type="checkbox" id="remember" name="remember" value="1"
-               onclick="remCheckboxChanged()">
-        [% IF namedqueries.size > 0 %]
-          <label for="remember">and remember it</label>
-        [% ELSE %]
-          <label for="remember">Remember this search</label>
-          <input type="hidden" id="cmdtype-doit"
-                 name="cmdtype" value="doit">
-        [% END %]
-      </td>
-      <td>
-        <input type="radio" id="remtype-asnamed"
-               name="remtype" value="asnamed" checked="checked"
-               onclick="remTypeChanged()">
-        <label for="remtype-asnamed">with this name:</label>
-        <input type="text" name="newqueryname"><br>
-          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-          <input type="checkbox" id="tofooter" name="tofooter" value="1">
-          <label for="tofooter">and put it in my page footer</label><br>
-        <input type="radio" id="remtype-asdefault"
-               name="remtype" value="asdefault"
-               onclick="remTypeChanged()">
-        <label for="remtype-asdefault">
-          as my default options for this page
-        </label><br>
-      </td>
-    </tr>
-
-    <tr>
-      <td colspan="2">
-        [% IF namedqueries.size > 0 %]
-          <input type="radio" id="cmdtype-dorem" name="cmdtype" value="dorem">
-          <select name="remaction" onclick="selectDoRem()">
-            <option value="run">Run</option>
-            <option value="load">Load</option>
-            <option value="forget">Forget</option>
-          </select>
-          <label for="cmdtype-dorem">my remembered search:</label>
-          <select name="namedcmd" onclick="selectDoRem()">
-            [% FOREACH query = namedqueries %]
-              <option value="[% query FILTER html %]">
-                [% query FILTER html %]</option>
-            [% END %]
-          </select>
-        [% END %]
-      </td>
-    </tr>
-  </table>
-
-  <script type="text/javascript"> <!--
-    remCheckboxChanged();
-    // -->
-  </script>
-[% END %]
+<input type="hidden" name="cmdtype" value="doit">
 
 <p>
   Sort results by:
@@ -147,14 +42,24 @@
          [% ordersdesc.$order FILTER html %]</option>
   [% END %]
   </select>
+</p>
 
+<p>  
   <input type="submit" value="[% button_name FILTER html %]">
-
-  [% IF userdefaultquery %]
-     <p>
-       <a href="query.cgi?nukedefaultquery=1">
-         Set my default query back to the system default</a>.
-     </p>
-  [% END %]
 </p>
 
+<p>
+  &nbsp;&nbsp;&nbsp;
+  <input type="checkbox" id="remasdefault"
+         name="remtype" value="asdefault">
+  <label for="remasdefault">
+    and remember these as my default search options
+  </label>
+</p>
+        
+[% IF userdefaultquery %]
+  <p>
+    <a href="query.cgi?nukedefaultquery=1">
+      Set my default query back to the system default</a>.
+  </p>
+[% END %]
diff --git a/template/en/default/search/search-create-series.html.tmpl b/template/en/default/search/search-create-series.html.tmpl
index 9673a1838f5cfd9627d7c4fad66967cfa183cfe3..83aa5a912b8ecd95063b98b5571aa264b306074e 100644
--- a/template/en/default/search/search-create-series.html.tmpl
+++ b/template/en/default/search/search-create-series.html.tmpl
@@ -25,6 +25,8 @@
   # search/boolean-charts.html.tmpl.
   #%]
 
+[% PROCESS global/variables.none.tmpl %]
+
 [% PROCESS global/header.html.tmpl 
   title = "Create New Data Set"
   onload = "selectProduct(document.forms['chartform']);"
@@ -48,7 +50,7 @@
     <td>
       <input type="radio" id="action-create" name="action" value="create">
       <label for="action-create">
-        Start recording bug count data for this search, as follows:
+        Start recording [% terms.bug %] count data for this search, as follows:
       </label>
       <br>
       
diff --git a/template/en/default/search/search-specific.html.tmpl b/template/en/default/search/search-specific.html.tmpl
index 72f86fb133b21064eecf8fa6b2b9190d5dfa3253..bd3ab833aa6d2ac2c966c1d1e8897b4a1fa41787 100644
--- a/template/en/default/search/search-specific.html.tmpl
+++ b/template/en/default/search/search-specific.html.tmpl
@@ -19,6 +19,8 @@
   # Contributor(s): Myk Melez <myk@mozilla.org>
   #%]
 
+[% PROCESS global/variables.none.tmpl %]
+
 [% PROCESS global/header.html.tmpl 
   title = "Find a Specific Bug"
   h1 = ""
@@ -35,15 +37,15 @@
 [% PROCESS search/tabs.html.tmpl %]
 
 <p>
-Find a specific bug by entering words that describe it.  Bugzilla will search
-bug summaries, descriptions, and comments for those words and return a list
-of matching bugs sorted by relevance.
+Find a specific [% terms.bug %] by entering words that describe it.  
+[% terms.Bugzilla %] will search [% terms.bug %] summaries, descriptions, and
+comments for those words and return a list of matching [% terms.bugs %] sorted
+by relevance.
 </p>
 
 <p>
-For example, if the bug you are looking for is a browser crash when you go 
-to a secure web site with an embedded Flash animation, you might search for 
-"crash secure SSL flash".
+For example, if the [% terms.bug %] you are looking for is a browser crash when you go to a secure web site with an embedded Flash animation, you might search
+for "crash secure SSL flash".
 </p>
 
 <form method="get" action="buglist.cgi">
diff --git a/template/en/default/search/search.html.tmpl b/template/en/default/search/search.html.tmpl
index 42207a122b07ce76617910b96a6226806bb2ffc2..5150fa408d5500fdf4736635044a40869495e896 100644
--- a/template/en/default/search/search.html.tmpl
+++ b/template/en/default/search/search.html.tmpl
@@ -69,7 +69,8 @@
       <font color="red">
       [% IF cgi.user_agent("Mozilla/5") %]
         Note that if the help popups are hidden by form element scroll bars,
-        this is a bug in your browser, not in [% terms.Bugzilla %].
+        this is a b<!-- word broken up to pass test 009 -->ug in your browser,
+        not in [% terms.Bugzilla %].
       [% END %]
     </font>
   </p>
diff --git a/userprefs.cgi b/userprefs.cgi
index 857665f7c33f6ebac033bf660ee2eb537b26bf30..017c7c94d1b5e7905b23604cef79e9221a2fd49e 100755
--- a/userprefs.cgi
+++ b/userprefs.cgi
@@ -30,13 +30,6 @@ require "CGI.pl";
 
 use RelationSet;
 
-# Shut up misguided -w warnings about "used only once". "use vars" just
-# doesn't work for me.
-sub sillyness {
-    my $zz;
-    $zz = $::defaultqueryname;
-}
-
 # Use global template variables.
 use vars qw($template $vars $userid);
 
@@ -269,61 +262,6 @@ sub SaveEmail {
 }
 
 
-sub DoFooter {
-    SendSQL("SELECT mybugslink FROM profiles " .
-            "WHERE userid = $userid");
-    $vars->{'mybugslink'} = FetchSQLData();
-    
-    SendSQL("SELECT name, linkinfooter FROM namedqueries " .
-            "WHERE userid = $userid");
-    
-    my @queries;        
-    while (MoreSQLData()) {
-        my ($name, $footer) = (FetchSQLData());
-        next if ($name eq $::defaultqueryname);
-        
-        push (@queries, { name => $name, footer => $footer });        
-    }
-    
-    $vars->{'queries'} = \@queries;
-}
-              
-sub SaveFooter {
-    my %old;
-    SendSQL("SELECT name, linkinfooter FROM namedqueries " .
-            "WHERE userid = $userid");
-    while (MoreSQLData()) {
-        my ($name, $footer) = (FetchSQLData());
-        $old{$name} = $footer;
-    }
-    
-    for (my $c = 0; $c < $::FORM{'numqueries'}; $c++) {
-        my $name = $::FORM{"name-$c"};
-        if (exists $old{$name}) {
-            my $new = $::FORM{"query-$c"};
-            if ($new ne $old{$name}) {
-                detaint_natural($new);
-                SendSQL("UPDATE namedqueries SET linkinfooter = $new " .
-                        "WHERE userid = $userid " .
-                        "AND name = " . SqlQuote($name));
-            }
-        } else {
-            ThrowUserError("missing_query", {queryname => $name});
-        }
-    }
-    SendSQL("UPDATE profiles SET mybugslink = " . 
-            SqlQuote($::FORM{'mybugslink'}) . " WHERE userid = $userid");
-
-    # Make sure that cached queries in the user object are invalidated
-    # so that the footer is correct
-    my $user = Bugzilla->user;
-    $user->flush_queries_cache();
-
-    # Also need to update showmybugslink
-    $user->{showmybugslink} = $::FORM{'mybugslink'} ? 1 : 0;
-}
-    
-    
 sub DoPermissions {
     my (@has_bits, @set_bits);
     
@@ -385,11 +323,6 @@ SWITCH: for ($current_tab_name) {
         DoEmail();
         last SWITCH;
     };
-    /^footer$/ && do {
-        SaveFooter() if $::FORM{'dosave'};
-        DoFooter();
-        last SWITCH;
-    };
     /^permissions$/ && do {
         DoPermissions();
         last SWITCH;
@@ -402,4 +335,3 @@ SWITCH: for ($current_tab_name) {
 print $cgi->header();
 $template->process("account/prefs/prefs.html.tmpl", $vars)
   || ThrowTemplateError($template->error());
-