diff --git a/src/p_setup.c b/src/p_setup.c
index e56c44c70616814a2f6f216864f07aaa0e2e8b8f..f1d3a68c8efe73226ec1a961610c8a3b27314606 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -2587,10 +2587,6 @@ boolean P_SetupLevel(boolean skipprecip)
 	R_ReInitColormaps(mapheaderinfo[gamemap-1]->palette);
 	CON_ReSetupBackColormap(mapheaderinfo[gamemap-1]->palette);
 
-	// now part of level loading since in future each level may have
-	// its own anim texture sequences, switches etc.
-	P_InitPicAnims();
-
 	// SRB2 determines the sky texture to be used depending on the map header.
 	P_SetupLevelSky(mapheaderinfo[gamemap-1]->skynum, true);
 
@@ -3001,6 +2997,9 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname)
 	else
 		R_FlushTextureCache(); // just reload it from file
 
+	// Reload ANIMATED / ANIMDEFS
+	P_InitPicAnims();
+
 	// Flush and reload HUD graphics
 	ST_UnloadGraphics();
 	HU_LoadGraphics();
diff --git a/src/r_data.c b/src/r_data.c
index cb5cf3591486abc8ca14b7cc5caf656021e55e54..87b6b1193cfd0e63fe1fe7753bc79e408b53e087 100644
--- a/src/r_data.c
+++ b/src/r_data.c
@@ -1499,6 +1499,9 @@ void R_InitData(void)
 	CONS_Printf("R_LoadTextures()...\n");
 	R_LoadTextures();
 
+	CONS_Printf("P_InitPicAnims()...\n");
+	P_InitPicAnims();
+
 	CONS_Printf("R_InitSprites()...\n");
 	R_InitSpriteLumps();
 	R_InitSprites();