diff --git a/src/osgPlugins/mdl/MDLReader.cpp b/src/osgPlugins/mdl/MDLReader.cpp
index 8883d65..cfd1452 100644
--- a/src/osgPlugins/mdl/MDLReader.cpp
+++ b/src/osgPlugins/mdl/MDLReader.cpp
@@ -154,8 +154,13 @@
     osg::ref_ptr<Texture>   texture;
 
     // Find the texture's image file
-    texFile = std::string(textureName) + ".vtf";
-    texPath = findDataFile(texFile, CASE_INSENSITIVE);
+    if(textureName.substr(textureName.find_last_of(".") + 1 ) == "vtf")
+        texPath = findDataFile(textureName, CASE_INSENSITIVE);        
+    else
+    {
+        texFile = std::string(textureName) + ".vtf";
+        texPath = findDataFile(texFile, CASE_INSENSITIVE);        
+    }
 
     // If we don't find it right away, check in a "materials" subdirectory
     if (texPath.empty())
diff --git a/src/osgPlugins/resolve/ReaderWriterResolve.cpp b/src/osgPlugins/resolve/ReaderWriterResolve.cpp
index 6e6e455..6ef0a5b 100644
--- a/src/osgPlugins/resolve/ReaderWriterResolve.cpp
+++ b/src/osgPlugins/resolve/ReaderWriterResolve.cpp
@@ -38,7 +38,7 @@ class ResolveImageFilename : public osg::NodeVisitor
 
                         // special case for dds, we dont support it so try to load png / jpg instead
                         std::string extImage = osgDB::getLowerCaseFileExtension(fileName);
-                        if (extImage == "dds" || extImage == "tga") {
+                        if (extImage == "dds" || extImage == "tga" || extImage == "vtf") {
                             bool foundAlternateFile = false;
 
                             if (!osgDB::findDataFile(fileName+".jpg").empty()) {
