diff --git a/configure.ac b/configure.ac
index 80acff8576b1b4ccec6fe05f7595628a10b325a1..b247eaae5972aecfba82db44a82007345baec15d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -179,9 +179,9 @@ else
 
         case $host in 
         *)
-                DEBUG="-g -Wall -Wno-parentheses -DDEBUG -D__NO_MATH_INLINES"
-                CFLAGS="-Wall -Wno-parentheses -O3 -fomit-frame-pointer -finline-functions -funroll-loops"
-                PROFILE="-Wall -Wno-parentheses -pg -g -O3 -fno-inline-functions -DDEBUG";;
+                DEBUG="-g -Wall -Werror=uninitialized -Winit-self -Wno-parentheses -DDEBUG -D__NO_MATH_INLINES"
+                CFLAGS="-Wall -Werror=uninitialized -Winit-self -Wno-parentheses -O3 -fomit-frame-pointer -finline-functions -funroll-loops"
+                PROFILE="-Wall -Werror=uninitialized -Winit-self -Wno-parentheses -pg -g -O3 -fno-inline-functions -DDEBUG";;
         esac
 fi
 CFLAGS="$CFLAGS $cflags_save"
diff --git a/lib/tokenize.c b/lib/tokenize.c
index 57b7aa8da9d074c92df86f91071a8f1b3e5f0924..a0529e21a94b66307a54296048026d21f34387f1 100644
--- a/lib/tokenize.c
+++ b/lib/tokenize.c
@@ -487,11 +487,11 @@ int oc_enc_tokenize_ac(oc_enc_ctx *_enc,int _pli,ptrdiff_t _fragi,
   zzj=64;
   for(zzi=OC_MINI(_zzi,63);zzi>0;zzi--){
     ogg_uint32_t best_cost;
-    int          best_bits=best_bits;
-    int          best_next=best_next;
-    int          best_token=best_token;
-    int          best_eb=best_eb;
-    int          best_qc=best_qc;
+    int          best_bits=0;
+    int          best_next=0;
+    int          best_token=0;
+    int          best_eb=0;
+    int          best_qc=0;
     ogg_uint32_t d2;
     int          dq;
     int          qc_m;
@@ -1091,8 +1091,8 @@ void oc_enc_tokenize_dc_frag_list(oc_enc_ctx *_enc,int _pli,
   int                neobs1;
   int                token;
   int                eb;
-  int                token1=token1;
-  int                eb1=eb1;
+  int                token1=0;
+  int                eb1;
   /*Return immediately if there are no coded fragments; otherwise we'd flush
      any trailing EOB run into the AC 1 list and never read it back out.*/
   if(_ncoded_fragis<=0)return;
@@ -1328,7 +1328,7 @@ void oc_enc_tokenize_finish(oc_enc_ctx *_enc){
     int       new_eb;
     int       zzj;
     int       plj;
-    ptrdiff_t ti=ti;
+    ptrdiff_t ti=0;
     int       run_count;
     /*Make sure this coefficient has tokens at all.*/
     if(_enc->ndct_tokens[pli][zzi]<=0)continue;