diff --git a/library/Makefile b/library/Makefile
index d8a0241..205c6a2 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -1,7 +1,7 @@
 
 # Also see "include/polarssl/config.h"
 
-CFLAGS	= -I../include -D_FILE_OFFSET_BITS=64
+CFLAGS	= -I../include -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement
 OFLAGS	= -O
 
 # MicroBlaze specific options:
diff --git a/library/camellia.c b/library/camellia.c
index 571d6a4..a24bfb5 100644
--- a/library/camellia.c
+++ b/library/camellia.c
@@ -197,7 +197,7 @@
 	}
 };
 
-static const char indexes[2][4][20] =
+static const signed char indexes[2][4][20] =
 {
 	{
 		{  0,  1,  2,  3,  8,  9, 10, 11, 38, 39,
@@ -221,7 +221,7 @@
 	}
 };
 
-static const char transposes[2][20] =
+static const signed char transposes[2][20] =
 {
 	{
 		21, 22, 23, 20,
@@ -279,7 +279,6 @@
 
 void camellia_feistel(unsigned long x[2], unsigned long k[2], unsigned long z[2])
 {
-	unsigned char t[8];
 	unsigned long I0, I1;
 	I0 = x[0] ^ k[0];
 	I1 = x[1] ^ k[1];
@@ -310,6 +309,9 @@
     int i, idx;
     unsigned long *RK;
     unsigned char t[64];
+    unsigned long SIGMA[6][2];
+    unsigned long KC[16];
+    unsigned long TK[20];
 
     RK = ctx->rk;
 
@@ -335,7 +337,6 @@
     /*
      * Prepare SIGMA values
      */
-    unsigned long SIGMA[6][2];
     for (i = 0; i < 6; i++) {
     	GET_ULONG_BE(SIGMA[i][0], SIGMA_CHARS[i], 0);
     	GET_ULONG_BE(SIGMA[i][1], SIGMA_CHARS[i], 4);
@@ -345,7 +346,6 @@
      * Key storage in KC
      * Order: KL, KR, KA, KB
      */
-    unsigned long KC[16];
     memset(KC, 0, sizeof(KC));
 
     /* Store KL, KR */
@@ -377,7 +377,6 @@
     /*
      * Generating subkeys
      */ 
-    unsigned long TK[20];
 
     /* Manipulating KL */
     SHIFT_AND_PLACE(idx, 0);
@@ -456,8 +455,8 @@
                     unsigned char input[16],
                     unsigned char output[16] )
 {
-    int i, NR;
-    unsigned long *RK, X[4], Y[4], T;
+    int NR;
+    unsigned long *RK, X[4];
 
     NR = ctx->nr;
     RK = ctx->rk;
@@ -736,10 +735,9 @@
  */
 int camellia_self_test( int verbose )
 {
-    int i, j, u, v, offset;
+    int i, j, u, v;
     unsigned char key[32];
     unsigned char buf[64];
-    unsigned char prv[16];
     unsigned char src[16];
     unsigned char dst[16];
     unsigned char iv[16];
diff --git a/library/x509parse.c b/library/x509parse.c
index dcb8ea9..9b68af4 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -42,6 +42,8 @@
 #include "polarssl/md4.h"
 #include "polarssl/md5.h"
 #include "polarssl/sha1.h"
+#include "polarssl/sha2.h"
+#include "polarssl/sha4.h"
 
 #include <string.h>
 #include <stdlib.h>
diff --git a/programs/Makefile b/programs/Makefile
index a87ae3e..8f3894e 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -2,7 +2,7 @@
 # To compile on SunOS: add "-lsocket -lnsl" to LDFLAGS
 # To compile on MinGW: add "-lws2_32" to LDFLAGS
 
-CFLAGS	= -I../include -D_FILE_OFFSET_BITS=64
+CFLAGS	= -I../include -D_FILE_OFFSET_BITS=64 -Wall -Wdeclaration-after-statement
 OFLAGS	= -O
 LDFLAGS	= -L../library -lpolarssl
 
diff --git a/programs/pkey/rsa_genkey.c b/programs/pkey/rsa_genkey.c
index 066e136..72d5e4a 100644
--- a/programs/pkey/rsa_genkey.c
+++ b/programs/pkey/rsa_genkey.c
@@ -41,7 +41,6 @@
     havege_state hs;
     FILE *fpub  = NULL;
     FILE *fpriv = NULL;
-    x509_raw cert;
 
     printf( "\n  . Seeding the random number generator..." );
     fflush( stdout );
diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c
index 0b8c97f..35e29d9 100644
--- a/programs/test/benchmark.c
+++ b/programs/test/benchmark.c
@@ -34,6 +34,7 @@
 #include "polarssl/md5.h"
 #include "polarssl/sha1.h"
 #include "polarssl/sha2.h"
+#include "polarssl/sha4.h"
 #include "polarssl/arc4.h"
 #include "polarssl/des.h"
 #include "polarssl/aes.h"
diff --git a/programs/test/selftest.c b/programs/test/selftest.c
index 25b2c21..82c002a 100644
--- a/programs/test/selftest.c
+++ b/programs/test/selftest.c
@@ -38,6 +38,7 @@
 #include "polarssl/arc4.h"
 #include "polarssl/des.h"
 #include "polarssl/aes.h"
+#include "polarssl/camellia.h"
 #include "polarssl/base64.h"
 #include "polarssl/bignum.h"
 #include "polarssl/rsa.h"
diff --git a/programs/test/ssl_cert_test.c b/programs/test/ssl_cert_test.c
index 7ec3370..1be4341 100644
--- a/programs/test/ssl_cert_test.c
+++ b/programs/test/ssl_cert_test.c
@@ -83,6 +83,8 @@
          * 1.2. Load own certificate
          */
 	char	name[512];
+	int flags;
+
 	snprintf(name, 512, "ssl/test-ca/%s", client_certificates[i]);
 
         printf( "  . Loading the client certificatei %s...", name );
@@ -105,8 +107,6 @@
 	printf( "  . Verify the client certificate with CA certificate..." );
 	fflush( stdout );
 
-	int flags;
-
 	ret = x509parse_verify( &clicert, &cacert, NULL, &flags );
 	if( ret != 0 )
 	{
diff --git a/programs/test/ssl_test.c b/programs/test/ssl_test.c
index 9d06bd1..32ea1c1 100644
--- a/programs/test/ssl_test.c
+++ b/programs/test/ssl_test.c
@@ -127,8 +127,8 @@
     int client_fd;
     int bytes_to_read;
     int bytes_to_write;
-    int offset_to_read;
-    int offset_to_write;
+    int offset_to_read = 0;
+    int offset_to_write = 0;
 
     long int nb_read;
     long int nb_written;
@@ -136,8 +136,8 @@
     unsigned long read_state[5];
     unsigned long write_state[5];
 
-    unsigned char *read_buf;
-    unsigned char *write_buf;
+    unsigned char *read_buf = NULL;
+    unsigned char *write_buf = NULL;
 
     struct hr_time t;
     havege_state hs;
