diff --git a/vp10/common/common.h b/vp10/common/common.h
index 4abcbf633256e42366ad765f11da957a7c5a19aa..54c7b89ba90b92682aa9463ccc7168b03e935fc7 100644
--- a/vp10/common/common.h
+++ b/vp10/common/common.h
@@ -33,12 +33,12 @@ extern "C" {
 
 // Use this for variably-sized arrays.
 #define vp10_copy_array(dest, src, n) {       \
-    assert(sizeof(*dest) == sizeof(*src));   \
-    memcpy(dest, src, n * sizeof(*src)); \
+    assert(sizeof(*(dest)) == sizeof(*(src)));   \
+    memcpy(dest, src, n * sizeof(*(src))); \
   }
 
 #define vp10_zero(dest) memset(&(dest), 0, sizeof(dest))
-#define vp10_zero_array(dest, n) memset(dest, 0, n * sizeof(*dest))
+#define vp10_zero_array(dest, n) memset(dest, 0, n * sizeof(*(dest)))
 
 static INLINE int get_unsigned_bits(unsigned int num_values) {
   return num_values > 0 ? get_msb(num_values) + 1 : 0;
diff --git a/vp8/common/common.h b/vp8/common/common.h
index e58a9cc23ba9c6851aaa6483ed5093803dbc8c0b..c42e8751961b5e162855edd80ca00b73337ba53e 100644
--- a/vp8/common/common.h
+++ b/vp8/common/common.h
@@ -32,13 +32,13 @@ extern "C" {
 /* Use this for variably-sized arrays. */
 
 #define vp8_copy_array( Dest, Src, N) { \
-        assert( sizeof( *Dest) == sizeof( *Src)); \
-        memcpy( Dest, Src, N * sizeof( *Src)); \
+        assert( sizeof( *(Dest)) == sizeof( *(Src))); \
+        memcpy( Dest, Src, N * sizeof( *(Src))); \
     }
 
-#define vp8_zero( Dest)  memset( &Dest, 0, sizeof( Dest));
+#define vp8_zero( Dest)  memset( &(Dest), 0, sizeof( Dest));
 
-#define vp8_zero_array( Dest, N)  memset( Dest, 0, N * sizeof( *Dest));
+#define vp8_zero_array( Dest, N)  memset( Dest, 0, N * sizeof( *(Dest)));
 
 
 #ifdef __cplusplus
diff --git a/vp9/common/vp9_common.h b/vp9/common/vp9_common.h
index 76e7cd440bc10f0b7ad91f1c03203a60c79cd44a..9d5dbc65793dc50b795fdd0f2cfe3f77488c13f0 100644
--- a/vp9/common/vp9_common.h
+++ b/vp9/common/vp9_common.h
@@ -33,12 +33,12 @@ extern "C" {
 
 // Use this for variably-sized arrays.
 #define vp9_copy_array(dest, src, n) {       \
-    assert(sizeof(*dest) == sizeof(*src));   \
-    memcpy(dest, src, n * sizeof(*src)); \
+    assert(sizeof(*(dest)) == sizeof(*(src)));   \
+    memcpy(dest, src, n * sizeof(*(src))); \
   }
 
 #define vp9_zero(dest) memset(&(dest), 0, sizeof(dest))
-#define vp9_zero_array(dest, n) memset(dest, 0, n * sizeof(*dest))
+#define vp9_zero_array(dest, n) memset(dest, 0, n * sizeof(*(dest)))
 
 static INLINE int get_unsigned_bits(unsigned int num_values) {
   return num_values > 0 ? get_msb(num_values) + 1 : 0;