diff --git a/mpn/generic/toom44_mul.c b/mpn/generic/toom44_mul.c
--- a/mpn/generic/toom44_mul.c
+++ b/mpn/generic/toom44_mul.c
@@ -116,17 +116,16 @@
 
   TMP_MARK;
 
-  as1  = TMP_SALLOC_LIMBS (n + 1);
-  asm1 = TMP_SALLOC_LIMBS (n + 1);
-  as2  = TMP_SALLOC_LIMBS (n + 1);
-  ash  = TMP_SALLOC_LIMBS (n + 1);
-  asmh = TMP_SALLOC_LIMBS (n + 1);
-
-  bs1  = TMP_SALLOC_LIMBS (n + 1);
-  bsm1 = TMP_SALLOC_LIMBS (n + 1);
-  bs2  = TMP_SALLOC_LIMBS (n + 1);
-  bsh  = TMP_SALLOC_LIMBS (n + 1);
-  bsmh = TMP_SALLOC_LIMBS (n + 1);
+  as1  = TMP_ALLOC_LIMBS (10 * n + 10);
+  asm1 = as1  + n + 1;
+  as2  = asm1 + n + 1;
+  ash  = as2  + n + 1;
+  asmh = ash  + n + 1;
+  bs1  = asmh + n + 1;
+  bsm1 = bs1  + n + 1;
+  bs2  = bsm1 + n + 1;
+  bsh  = bs2  + n + 1;
+  bsmh = bsh  + n + 1;
 
   gp = pp;
   hp = pp + n + 1;
