diff --git a/britney.py b/britney.py
index 038624e..c7f8f22 100755
--- a/britney.py
+++ b/britney.py
@@ -245,6 +245,8 @@ class Britney:
         self.systems = {}
 
         # if requested, build the non-installable status and save it
+        # if this or the population of self.binaries below takes a very
+        # long time, try increasing SIZEOFHASHMAP in lib/dpkg.c and rebuilding
         if not self.options.nuninst_cache:
             self.__log("Building the list of not installable packages for the full archive", type="I")
             self.sources = {'testing': self.read_sources(self.options.testing)}
@@ -270,6 +272,8 @@ class Britney:
             return
 
         # read the source and binary packages for the involved distributions
+        # if this takes a very long time, try increasing SIZEOFHASHMAP in
+        # lib/dpkg.c and rebuilding
         self.sources = {'testing': self.read_sources(self.options.testing),
                         'unstable': self.read_sources(self.options.unstable),
                         'tpu': self.read_sources(self.options.tpu),}
diff --git a/lib/dpkg.c b/lib/dpkg.c
index 0a2a0ac..da274bd 100644
--- a/lib/dpkg.c
+++ b/lib/dpkg.c
@@ -7,6 +7,10 @@
 #include "dpkg.h"
 #include "memory.h"
 
+// enlarge this if britney has issues parsing packages
+// (e.g. very slow installability checks)
+#define SIZEOFHASHMAP 16
+
 /* #define DIAGNOSE 1 */
 
 #define insert_packagenamelist(x,y) insert_l_packagenamelist(x,y,__LINE__)
@@ -562,9 +566,9 @@ void free_packages(dpkg_packages *pkgs) {
 }
 
 
-HASH_IMPL(packagetbl, char *, dpkg_collected_package *, 15, strhash, strcmp,
+HASH_IMPL(packagetbl, char *, dpkg_collected_package *, SIZEOFHASHMAP, strhash, strcmp,
 	  KEEP(char*),free_collected_package);
-HASH_IMPL(virtualpkgtbl, char *, virtualpkg *, 15, strhash, strcmp,
+HASH_IMPL(virtualpkgtbl, char *, virtualpkg *, SIZEOFHASHMAP, strhash, strcmp,
 	  KEEP(char*), free_virtualpkg);
 
 /* dpkg_provision refers to memory allocated elsewhere */