diff --git a/src/modules/Gmp/mpz_glue.c b/src/modules/Gmp/mpz_glue.c
index 8aba4c7d2bf95c1dd16b4ace5bcbb87765d7092f..ee6b6b863f9fd42123e2ebb3d14b0156a8b1ac13 100644
--- a/src/modules/Gmp/mpz_glue.c
+++ b/src/modules/Gmp/mpz_glue.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: mpz_glue.c,v 1.21 1997/08/30 22:25:44 grubba Exp $");
+RCSID("$Id: mpz_glue.c,v 1.22 1997/09/07 15:04:08 nisse Exp $");
 #include "gmp_machine.h"
 
 #if !defined(HAVE_LIBGMP)
@@ -200,6 +200,8 @@ static void mpzmod_get_string(INT32 args)
 static void mpzmod_digits(INT32 args)
 {
   INT32 base;
+  struct pike_string *s;
+  
   if (!args)
   {
     base = 10;
@@ -210,9 +212,11 @@ static void mpzmod_digits(INT32 args)
       error("Bad argument 1 for Mpz->digits().\n");
     base = sp[-args].u.integer;
   }
+
+  s = low_get_digits(THIS, base);
   pop_n_elems(args);
 
-  push_string(low_get_digits(THIS, base));
+  push_string(s);
 }
 
 static void mpzmod_size(INT32 args)