diff --git a/Python/dtoa.c b/Python/dtoa.c
index e629b29..c7002e5 100644
--- a/Python/dtoa.c
+++ b/Python/dtoa.c
@@ -119,6 +119,16 @@
 
 #include "Python.h"
 #include "pycore_dtoa.h"
+#include "pycore_interp.h"
+#include "pycore_pystate.h"
+
+#define ULong _PyDtoa_ULong
+#define Long _PyDtoa_Long
+#define ULLong _PyDtoa_ULLong
+#define Kmax _PyDtoa_Kmax
+
+typedef struct _PyDtoa_Bigint Bigint;
+
 
 /* if PY_NO_SHORT_FLOAT_REPR is defined, then don't even try to compile
    the following code */
@@ -154,11 +164,6 @@
 #error "doubles and ints have incompatible endianness"
 #endif
 
-
-typedef uint32_t ULong;
-typedef int32_t Long;
-typedef uint64_t ULLong;
-
 #undef DEBUG
 #ifdef Py_DEBUG
 #define DEBUG
@@ -297,8 +302,6 @@ BCinfo {
 
 #define FFFFFFFF 0xffffffffUL
 
-#define Kmax 7
-
 /* struct Bigint is used to represent arbitrary-precision integers.  These
    integers are stored in sign-magnitude format, with the magnitude stored as
    an array of base 2**32 digits.  Bigints are always normalized: if x is a
@@ -321,14 +324,6 @@ BCinfo {
        significant (x[0]) to most significant (x[wds-1]).
 */
 
-struct
-Bigint {
-    struct Bigint *next;
-    int k, maxwds, sign, wds;
-    ULong x[1];
-};
-
-typedef struct Bigint Bigint;
 
 #ifndef Py_USING_MEMORY_DEBUGGER
 
@@ -351,7 +346,13 @@ typedef struct Bigint Bigint;
    Bfree to PyMem_Free.  Investigate whether this has any significant
    performance on impact. */
 
-static Bigint *freelist[Kmax+1];
+
+/* Get Bigint freelist from interpreter  */
+static Bigint **
+get_freelist(void) {
+    PyInterpreterState *interp = _PyInterpreterState_GET();
+    return interp->dtoa_freelist;
+} 
 
 /* Allocate space for a Bigint with up to 1<<k digits */
 
@@ -361,7 +362,7 @@ Balloc(int k)
     int x;
     Bigint *rv;
     unsigned int len;
-
+    Bigint **freelist = get_freelist();
     if (k <= Kmax && (rv = freelist[k]))
         freelist[k] = rv->next;
     else {
@@ -393,6 +394,7 @@ Bfree(Bigint *v)
         if (v->k > Kmax)
             FREE((void*)v);
         else {
+            Bigint **freelist = get_freelist();
             v->next = freelist[v->k];
             freelist[v->k] = v;
         }
