diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -3,6 +3,13 @@
 
 Here you can see the full list of changes between each bitset release.
 
+Version 1.4.3
+-------------
+
+Released on May 13th, 2013
+
+- Fixed bug with broken cabal distribution.
+
 Version 1.4.2
 -------------
 
diff --git a/bin/mkDerivedGmpConstants.c b/bin/mkDerivedGmpConstants.c
new file mode 100644
--- /dev/null
+++ b/bin/mkDerivedGmpConstants.c
@@ -0,0 +1,74 @@
+/* --------------------------------------------------------------------------
+ *
+ * (c) The GHC Team, 1992-2004
+ *
+ * mkDerivedConstants.c
+ *
+ * Basically this is a C program that extracts information from the C
+ * declarations in the header files (primarily struct field offsets)
+ * and generates a header file that can be #included into non-C source
+ * containing this information.
+ *
+ * ------------------------------------------------------------------------*/
+
+#include <stdio.h>
+#include "gmp.h"
+
+
+#define str(a,b) #a "_" #b
+
+#define OFFSET(s_type, field) ((size_t)&(((s_type*)0)->field))
+
+/* struct_size(TYPE)
+ *
+ */
+#define def_size(str, size) \
+    printf("#define SIZEOF_" str " %lu\n", (unsigned long)size);
+
+#define struct_size(s_type) \
+    def_size(#s_type, sizeof(s_type));
+
+
+
+/* struct_field(TYPE, FIELD)
+ *
+ */
+#define def_offset(str, offset) \
+    printf("#define OFFSET_" str " %d\n", (int)(offset));
+
+#define field_offset_(str, s_type, field) \
+    def_offset(str, OFFSET(s_type,field));
+
+#define field_offset(s_type, field) \
+    field_offset_(str(s_type,field),s_type,field);
+
+#define field_type_(str, s_type, field) \
+    printf("#define REP_" str " b"); \
+    printf("%lu\n", (unsigned long)sizeof (__typeof__(((((s_type*)0)->field)))) * 8);
+
+#define field_type(s_type, field) \
+    field_type_(str(s_type,field),s_type,field);
+
+/* An access macro for use in C-- sources. */
+#define struct_field_macro(str) \
+    printf("#define " str "(__ptr__)  REP_" str "[__ptr__+OFFSET_" str "]\n");
+
+/* Outputs the byte offset and MachRep for a field */
+#define struct_field(s_type, field)		\
+    field_offset(s_type, field);		\
+    field_type(s_type, field);			\
+    struct_field_macro(str(s_type,field))
+
+
+int
+main(int argc, char *argv[])
+{
+    printf("/* This file is created automatically.  Do not edit by hand.*/\n\n");
+
+    struct_size(MP_INT);
+    struct_field(MP_INT,_mp_alloc);
+    struct_field(MP_INT,_mp_size);
+    struct_field(MP_INT,_mp_d);
+
+    return 0;
+}
diff --git a/bitset.cabal b/bitset.cabal
--- a/bitset.cabal
+++ b/bitset.cabal
@@ -1,5 +1,5 @@
 Name:                 bitset
-Version:              1.4.2
+Version:              1.4.3
 Synopsis:             A space-efficient set data structure.
 Description:
   A /bit set/ is a compact data structure, which maintains a set of members
@@ -17,6 +17,7 @@
 Cabal-Version:        >= 1.12
 Build-type:           Custom
 Tested-with:          GHC >= 7.4.1
+Extra-Source-Files:   bin/mkDerivedGmpConstants.c
 
 Source-repository head
   Type:     git
