diff --git a/examples/bin/popcon.pl b/examples/bin/popcon.pl
index fe4416a..e1e33d4 100755
--- a/examples/bin/popcon.pl
+++ b/examples/bin/popcon.pl
@@ -16,7 +16,7 @@ my %popconver=("1.28" => "sarge", "1.41" => "etch", "1.46" => "lenny",
                "1.64" => "stretch", "1.67" => "buster", "1.71" => "bullseye",
                "1.76" => "bookworm");
 my %popver=();
-my @dists=("main","contrib","non-free","non-US");
+my @dists=("main","contrib","non-free","non-free-firmware","non-US");
 my @fields=("inst","vote","old","recent","no-files");
 my %maint=();
 my %list_header=(
@@ -502,17 +502,17 @@ sub gen_sections
   print_by ("sourcemax",$_) for (@fields);
   print HTML ("</pre>\n </p> \n");
   printf HTML ("<p>Statistics for sections sorted by fields\n <pre>\n");
-  for $dir ("main","contrib","non-free","non-US","unknown")
+  for $dir (@dists,"unknown")
   {
     -d "$popcon/$dir" or next;
     $dir !~ /^\./ or next;
     if ($dir eq "unknown")
     {
-      printf HTML ("%-16s : ",$dir);
+      printf HTML ("%-20s : ",$dir);
     }
     else
     {
-      printf HTML ("<a href=\"$dir/index.html\">%-16s</a> : ",$dir);
+      printf HTML ("<a href=\"$dir/index.html\">%-20s</a> : ",$dir);
     }
     print_by ($dir,$_) for (@fields);
     print HTML ("\n");
@@ -639,7 +639,7 @@ sub read_packages
       my ($p,$sec)=split(' ');
       defined($sec) or last;
       chomp $sec;
-      $sec =~ m{^(non-US|contrib|non-free)/} or $sec="main/$sec";
+      $sec =~ m{^(non-US|contrib|non-free|non-free-firmware)/} or $sec="main/$sec";
       $section{$p}=$sec;
       $maint{$p}="Not in sid";
       $source{$p}="Not in sid";
@@ -665,7 +665,7 @@ sub read_packages
         /^Source: (\S+)/ and do { $source{$p}=$1;next;};
         /^Section: (.+)/ or next;
         my $sec = $1;
-        $sec =~ m{^(non-US|contrib|non-free)/} or $sec="main/$sec";
+        $sec =~ m{^(non-US|contrib|non-free|non-free-firmware)/} or $sec="main/$sec";
         $section{$p}=$sec;
       }
       close AVAIL;
