diff --git a/src/OpenGL/libGLESv2/libGLESv2.cpp b/src/OpenGL/libGLESv2/libGLESv2.cpp
index 86ebabb..75f4d06 100644
--- a/src/OpenGL/libGLESv2/libGLESv2.cpp
+++ b/src/OpenGL/libGLESv2/libGLESv2.cpp
@@ -794,7 +794,7 @@
 	      "GLsizei imageSize = %d, const GLvoid* data = %p)",
 	      target, level, xoffset, yoffset, width, height, format, imageSize, data);
 
-	if(!es2::IsTextureTarget(target))
+	if(!es2::IsTexImageTarget(target))
 	{
 		return error(GL_INVALID_ENUM);
 	}
@@ -1017,7 +1017,7 @@
 	      "GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)",
 	      target, level, xoffset, yoffset, x, y, width, height);
 
-	if(!es2::IsTextureTarget(target))
+	if(!es2::IsTexImageTarget(target))
 	{
 		return error(GL_INVALID_ENUM);
 	}
@@ -4886,7 +4886,7 @@
 	      "const GLvoid* data = %p)",
 	      target, level, xoffset, yoffset, width, height, format, type, data);
 
-	if(!es2::IsTextureTarget(target))
+	if(!es2::IsTexImageTarget(target))
 	{
 		return error(GL_INVALID_ENUM);
 	}
diff --git a/src/OpenGL/libGLESv2/utilities.cpp b/src/OpenGL/libGLESv2/utilities.cpp
index 4db3b93..aa14300 100644
--- a/src/OpenGL/libGLESv2/utilities.cpp
+++ b/src/OpenGL/libGLESv2/utilities.cpp
@@ -869,9 +869,14 @@
 		}
 	}
 
+	bool IsTexImageTarget(GLenum target)
+	{
+		return target == GL_TEXTURE_2D || IsCubemapTextureTarget(target) || target == GL_TEXTURE_2D_ARRAY || target == GL_TEXTURE_RECTANGLE_ARB;
+	}
+
 	bool IsTextureTarget(GLenum target)
 	{
-		return target == GL_TEXTURE_2D || IsCubemapTextureTarget(target) || target == GL_TEXTURE_3D || target == GL_TEXTURE_2D_ARRAY || target == GL_TEXTURE_RECTANGLE_ARB;
+		return IsTexImageTarget(target) || target == GL_TEXTURE_3D;
 	}
 
 	GLenum ValidateTextureFormatType(GLenum format, GLenum type, GLint internalformat, GLenum target)
diff --git a/src/OpenGL/libGLESv2/utilities.h b/src/OpenGL/libGLESv2/utilities.h
index a698d20..187ef13 100644
--- a/src/OpenGL/libGLESv2/utilities.h
+++ b/src/OpenGL/libGLESv2/utilities.h
@@ -56,6 +56,7 @@
 	bool IsStencilTexture(GLint format);
 	bool IsCubemapTextureTarget(GLenum target);
 	int CubeFaceIndex(GLenum cubeTarget);
+	bool IsTexImageTarget(GLenum target);
 	bool IsTextureTarget(GLenum target);
 	GLenum ValidateTextureFormatType(GLenum format, GLenum type, GLint internalformat, GLenum target);
 	size_t GetTypeSize(GLenum type);
diff --git a/tests/GLESUnitTests/unittests.cpp b/tests/GLESUnitTests/unittests.cpp
index ed8c441..a9c4f31 100644
--- a/tests/GLESUnitTests/unittests.cpp
+++ b/tests/GLESUnitTests/unittests.cpp
@@ -1583,6 +1583,35 @@
 	Uninitialize();
 }
 
+TEST_F(SwiftShaderTest, InvalidEnum_TexImage2D)
+{
+	Initialize(3, false);
+
+	const GLenum invalidTarget = GL_TEXTURE_3D;
+
+	glTexImage2D(invalidTarget, 0, GL_R11F_G11F_B10F, 256, 256, 0, GL_RGB, GL_UNSIGNED_INT_10F_11F_11F_REV, nullptr);
+	EXPECT_GLENUM_EQ(GL_INVALID_ENUM, glGetError());
+
+	float pixels[3] = { 0.0f, 0.0f, 0.0f };
+	glTexSubImage2D(invalidTarget, 0, 0, 0, 1, 1, GL_RGB, GL_FLOAT, pixels);
+	EXPECT_GLENUM_EQ(GL_INVALID_ENUM, glGetError());
+
+	glCopyTexImage2D(invalidTarget, 0, GL_RGB, 2, 6, 8, 8, 0);
+	EXPECT_GLENUM_EQ(GL_INVALID_ENUM, glGetError());
+
+	glCopyTexSubImage2D(invalidTarget, 0, 0, 0, 0, 0, 1, 1);
+	EXPECT_GLENUM_EQ(GL_INVALID_ENUM, glGetError());
+
+	const char data[128] = { 0 };
+	glCompressedTexImage2D(invalidTarget, 0, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, 16, 16, 0, 128, data);
+	EXPECT_GLENUM_EQ(GL_INVALID_ENUM, glGetError());
+
+	glCompressedTexSubImage2D(invalidTarget, 0, 0, 0, 0, 0, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, 0, 0);
+	EXPECT_GLENUM_EQ(GL_INVALID_ENUM, glGetError());
+
+	Uninitialize();
+}
+
 TEST_F(SwiftShaderTest, CompilerLimits_DeepNestedIfs)
 {
 	std::string body = "return 1.0;";
