diff --git a/src/video/SDL_blit_A.c b/src/video/SDL_blit_A.c
index e149ed79fb160e6fa31a1d0c9b11545d05329d86..cff011e81e353422dde1590da563b7c18c6ba4f6 100644
--- a/src/video/SDL_blit_A.c
+++ b/src/video/SDL_blit_A.c
@@ -2756,8 +2756,9 @@ SDL_loblit SDL_CalculateAlphaBlit(SDL_Surface *surface, int blit_index)
 #endif
 			if((sf->Rmask | sf->Gmask | sf->Bmask) == 0xffffff)
 			{
-#if USE_ALTIVEC_BLITTERS
-				if(SDL_HasAltiVec())
+#if SDL_ALTIVEC_BLITTERS
+				if(!(surface->map->dst->flags & SDL_HWSURFACE)
+					&& SDL_HasAltiVec())
 					return BlitRGBtoRGBSurfaceAlphaAltivec;
 #endif
 				return BlitRGBtoRGBSurfaceAlpha;
@@ -2822,8 +2823,9 @@ SDL_loblit SDL_CalculateAlphaBlit(SDL_Surface *surface, int blit_index)
 #endif
 		if(sf->Amask == 0xff000000)
 		{
-#if USE_ALTIVEC_BLITTERS
-			if(SDL_HasAltiVec())
+#if SDL_ALTIVEC_BLITTERS
+			if(!(surface->map->dst->flags & SDL_HWSURFACE)
+				&& SDL_HasAltiVec())
 				return BlitRGBtoRGBPixelAlphaAltivec;
 #endif
 			return BlitRGBtoRGBPixelAlpha;