diff --git a/scripts/mbedtls_dev/bignum_mod.py b/scripts/mbedtls_dev/bignum_mod.py
index 5f4e362..aa06fe8 100644
--- a/scripts/mbedtls_dev/bignum_mod.py
+++ b/scripts/mbedtls_dev/bignum_mod.py
@@ -42,16 +42,11 @@
     input_style = "fixed"
     arity = 2
 
-    # To make negative tests easier, append 0 for success to the generated cases
-    def arguments(self) -> List[str]:
-        return [bignum_common.quote_str(n) for n in [self.arg_n,
-                                                     self.arg_a,
-                                                     self.arg_b]
-               ] + self.result() + ["0"]
-
     def result(self) -> List[str]:
         result = (self.int_a - self.int_b) % self.int_n
-        return [self.format_result(result)]
+        # To make negative tests easier, append 0 for success to the
+        # generated cases
+        return [self.format_result(result), "0"]
 
 # END MERGE SLOT 3
 
diff --git a/tests/suites/test_suite_bignum_mod.function b/tests/suites/test_suite_bignum_mod.function
index abf6732..0d2e232 100644
--- a/tests/suites/test_suite_bignum_mod.function
+++ b/tests/suites/test_suite_bignum_mod.function
@@ -9,9 +9,9 @@
             ASSERT_COMPARE( (a).p, (a).limbs * sizeof(mbedtls_mpi_uint), \
                             (b).p, (b).limbs * sizeof(mbedtls_mpi_uint) )
 
-int test_read_modulus( mbedtls_mpi_mod_modulus *m,
-                       mbedtls_mpi_mod_rep_selector int_rep,
-                       char *input )
+static int test_read_modulus( mbedtls_mpi_mod_modulus *m,
+                              mbedtls_mpi_mod_rep_selector int_rep,
+                              char *input )
 {
     mbedtls_mpi_uint *p = NULL;
     size_t limbs;
@@ -23,10 +23,10 @@
     return( mbedtls_mpi_mod_modulus_setup( m, p, limbs, int_rep ) );
 }
 
-int test_read_residue( mbedtls_mpi_mod_residue *r,
-                       const mbedtls_mpi_mod_modulus *m,
-                       char *input,
-                       int skip_limbs_and_value_checks )
+static int test_read_residue( mbedtls_mpi_mod_residue *r,
+                              const mbedtls_mpi_mod_modulus *m,
+                              char *input,
+                              int skip_limbs_and_value_checks )
 {
     mbedtls_mpi_uint *p = NULL;
     size_t limbs;
