--- ../src_base/minecraft/net/minecraft/client/renderer/RenderEngine.java
+++ ../src_work/minecraft/net/minecraft/client/renderer/RenderEngine.java
@@ -28,6 +28,8 @@
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL12;
 
+import net.minecraftforge.client.ForgeHooksClient;
+
 @SideOnly(Side.CLIENT)
 public class RenderEngine
 {
@@ -186,6 +188,7 @@
 
                 try
                 {
+                    ForgeHooksClient.onTextureLoadPre(par1Str);
                     int i = GLAllocation.generateTextureNames();
                     TextureFXManager.instance().bindTextureToName(par1Str, i);
                     boolean flag = par1Str.startsWith("%blur%");
@@ -216,6 +219,7 @@
                     }
 
                     this.textureMap.put(s1, Integer.valueOf(i));
+                    ForgeHooksClient.onTextureLoad(par1Str, texturePack.getSelectedTexturePack());
                     return i;
                 }
                 catch (Exception exception)

--- ../src_base/minecraft/net/minecraft/client/renderer/RenderEngine.java
+++ ../src_work/minecraft/net/minecraft/client/renderer/RenderEngine.java
@@ -28,6 +28,8 @@
 import org.lwjgl.opengl.GL11;
 import org.lwjgl.opengl.GL12;
 
+import net.minecraftforge.client.ForgeHooksClient;
+
 @SideOnly(Side.CLIENT)
 public class RenderEngine
 {
@@ -186,6 +188,7 @@
 
                 try
                 {
+                    ForgeHooksClient.onTextureLoadPre(par1Str);
                     int i = GLAllocation.generateTextureNames();
                     TextureFXManager.instance().bindTextureToName(par1Str, i);
                     boolean flag = par1Str.startsWith("%blur%");
@@ -216,6 +219,7 @@
                     }
 
                     this.textureMap.put(s1, Integer.valueOf(i));
+                    ForgeHooksClient.onTextureLoad(par1Str, texturePack.getSelectedTexturePack());
                     return i;
                 }
                 catch (Exception exception)
@@ -417,6 +421,7 @@
     {
         this.textureMapBlocks.updateAnimations();
         this.textureMapItems.updateAnimations();
+        this.resetBoundTexture(); //Forge: BugFix, Animations don't use our bindTexture, and thus don't change the cached texture.
     }
 
     /**
@@ -515,6 +520,7 @@
     {
         this.textureMapBlocks.refreshTextures();
         this.textureMapItems.refreshTextures();
+        this.resetBoundTexture(); //Forge: BugFix, Animations don't use our bindTexture, and thus don't change the cached texture.
     }
 
     public Icon getMissingIcon(int par1)

Fix potential GL issue when atlas animations bind textures without informating RenderEngine.
Fix potential GL issue when atlas animations bind textures without informating RenderEngine.
