delete @{$control}{qw(depth applied)};
 
-    my @unknown_keys = grep { !m{^ (?: depends | description | file | ignore | locales | may_fail | priority | tag ) $}x } keys %{ $control };
+    my @unknown_keys = grep { !m{^ (?: depends | description | file | ignore | locales | may_fail | priority | superuser_privileges | tag ) $}x } keys %{ $control };
     if (@unknown_keys) {
       _control_error($form, $file_name, sprintf($locale->text("Unknown control fields: #1", join(' ', sort({ lc $a cmp lc $b } @unknown_keys)))));
     }
   return grep { !$_->{applied} } @all_scripts;
 }
 
-sub update2_available {
-  my ($self, $dbh) = @_;
-
-  my @unapplied_scripts = $self->unapplied_upgrade_scripts($dbh);
-
-  return !!@unapplied_scripts;
-}
-
 sub apply_admin_dbupgrade_scripts {
   my ($self, $called_from_admin) = @_;
 
 
 Requires that the scripts have been parsed.
 
-=item C<update2_available $dbh>
-
-Returns trueish if at least one upgrade script hasn't been applied to
-a database yet. C<$dbh> is an open handle to the database that is
-checked.
-
-Requires that the scripts have been parsed.
-
 =back
 
 =head1 BUGS