Index: audiostr.cpp
===================================================================
--- audiostr.cpp	(revision 9673)
+++ audiostr.cpp	(working copy)
@@ -437,6 +437,7 @@
 	char filename[MAX_FILENAME_LEN];
 	const int NUM_EXT = 2;
 	const char *audio_ext[NUM_EXT] = { ".ogg", ".wav" };
+	bool fred_forced_failed = false;
 
 	m_total_uncompressed_bytes_read = 0;
 	m_max_uncompressed_bytes_to_read = AS_HIGHEST_MAX;
@@ -454,6 +455,12 @@
 			}
 		}
 
+		// FRED forces keep_ext to true so there may not actually be an extension
+		if ((rc < 0) && (Fred_running)) {
+			fred_forced_failed = true;
+			rc = cf_find_file_location_ext(filename, NUM_EXT, audio_ext, CF_TYPE_ANY, sizeof(fullpath) - 1, fullpath, &FileSize, &FileOffset);
+		} 
+
 		// not a supported extension format ... somebody screwed up their tbls :)
 		if (rc < 0)
 			goto OPEN_ERROR;
@@ -467,8 +474,10 @@
 
 	if (rc < 0) {
 		goto OPEN_ERROR;
-	} else {
-		// set proper filename for later use (assumes that it doesn't already have an extension)
+	} 
+
+	// set proper filename for later use (assumes that it doesn't already have an extension)
+	if ((!keep_ext) || (fred_forced_failed)) {
 		strcat_s( filename, audio_ext[rc] );
 	}
 
