diff --git a/ChangeLog b/ChangeLog
index df9f64853f533713b5d8809febc414f62585b509..fa11ddc46ff496ac8b145d184983342381771883 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-02-20  Niels Möller  <nisse@lysator.liu.se>
+
+	* nettle-internal.h (TMP_ALLOC): Added missing parentheses.
+
 2013-02-18  Niels Möller  <nisse@lysator.liu.se>
 
 	* testsuite/ecdsa-verify-test.c: New testcase.
diff --git a/nettle-internal.h b/nettle-internal.h
index e85e3c5f08c02557b927d93f86de2338fd69fa3d..3b7f771d0c5b9b442fc0886dfa213f715ce95240 100644
--- a/nettle-internal.h
+++ b/nettle-internal.h
@@ -36,11 +36,11 @@
 
 #if HAVE_ALLOCA
 # define TMP_DECL(name, type, max) type *name
-# define TMP_ALLOC(name, size) (name = alloca(sizeof (*name) * size))
+# define TMP_ALLOC(name, size) (name = alloca(sizeof (*name) * (size)))
 #else /* !HAVE_ALLOCA */
 # define TMP_DECL(name, type, max) type name[max]
 # define TMP_ALLOC(name, size) \
-do { if (size > (sizeof(name) / sizeof(name[0]))) abort(); } while (0)
+  do { if ((size) > (sizeof(name) / sizeof(name[0]))) abort(); } while (0)
 #endif 
 
 /* Arbitrary limits which apply to systems that don't have alloca */