diff --git a/libavcodec/ppc/dsputil_ppc.c b/libavcodec/ppc/dsputil_ppc.c
index 546fa0bd49c2e18ae94093ddb8b998407ca8d2ed..80dea036d628ded374bc96121c598678a5c6cc69 100644
--- a/libavcodec/ppc/dsputil_ppc.c
+++ b/libavcodec/ppc/dsputil_ppc.c
@@ -141,7 +141,7 @@ POWERPC_PERF_START_COUNT(powerpc_clear_blocks_dcbz32, 1);
       ((unsigned long*)blocks)[3] = 0L;
       i += 16;
     }
-    for ( ; i < sizeof(DCTELEM)*6*64 ; i += 32) {
+    for ( ; i < sizeof(DCTELEM)*6*64-31 ; i += 32) {
 #ifndef __MWERKS__
       asm volatile("dcbz %0,%1" : : "b" (blocks), "r" (i) : "memory");
 #else
@@ -255,9 +255,9 @@ void dsputil_init_ppc(DSPContext* c, AVCodecContext *avctx)
     break;
   }
 
+#ifdef HAVE_ALTIVEC
   dsputil_h264_init_ppc(c, avctx);
   
-#ifdef HAVE_ALTIVEC
     if (has_altivec()) {
         mm_flags |= MM_ALTIVEC;