diff --git a/map-tool/src/source.rs b/map-tool/src/source.rs
index fc0ff51..fa481ec 100644
--- a/map-tool/src/source.rs
+++ b/map-tool/src/source.rs
@@ -178,25 +178,41 @@ fn load_texture<'bsp,'vpk,'a>(finder:BspFinder<'bsp,'vpk>,texture_name:&str)->Re
 	// search for both vmt,vtf
 	let mut texture_file_name_vmt=texture_file_name.clone();
 	texture_file_name_vmt.set_extension("vmt");
-	let vmt_result=recursive_vmt_loader(finder,get_vmt(finder,texture_file_name_vmt.to_str().unwrap())?);
-	match vmt_result{
-		Ok(Some(stuff))=>return Ok(Some(stuff)),
-		Ok(None)
-		|Err(LoadVMTError::NotFound)=>(),
-		|Err(LoadVMTError::GetVMT(GetVMTError::NotFound))=>(),
-		Err(e)=>return Err(e),
+
+	let get_vmt_result=get_vmt(finder,texture_file_name_vmt.to_str().unwrap());
+	match get_vmt_result{
+		Ok(material)=>{
+			let vmt_result=recursive_vmt_loader(finder,material);
+			match vmt_result{
+				Ok(Some(stuff))=>return Ok(Some(stuff)),
+				Ok(None)
+				|Err(LoadVMTError::NotFound)=>(),
+				|Err(LoadVMTError::GetVMT(GetVMTError::NotFound))=>(),
+				Err(e)=>return Err(e),
+			}
+		}
+		|Err(GetVMTError::NotFound)=>(),
+		Err(e)=>Err(e)?,
 	}
 
 	// try looking for vtf
 	let mut texture_file_name_vtf=texture_file_name.clone();
 	texture_file_name_vtf.set_extension("vtf");
-	let vtf_result=recursive_vmt_loader(finder,get_vmt(finder,texture_file_name_vtf.to_str().unwrap())?);
-	match vtf_result{
-		Ok(Some(stuff))=>return Ok(Some(stuff)),
-		Ok(None)
-		|Err(LoadVMTError::NotFound)=>(),
-		|Err(LoadVMTError::GetVMT(GetVMTError::NotFound))=>(),
-		Err(e)=>return Err(e),
+
+	let get_vtf_result=get_vmt(finder,texture_file_name_vtf.to_str().unwrap());
+	match get_vtf_result{
+		Ok(material)=>{
+			let vtf_result=recursive_vmt_loader(finder,material);
+			match vtf_result{
+				Ok(Some(stuff))=>return Ok(Some(stuff)),
+				Ok(None)
+				|Err(LoadVMTError::NotFound)=>(),
+				|Err(LoadVMTError::GetVMT(GetVMTError::NotFound))=>(),
+				Err(e)=>return Err(e),
+			}
+		}
+		|Err(GetVMTError::NotFound)=>(),
+		Err(e)=>Err(e)?,
 	}
 
 	Ok(None)