Index: ../../SimGear/source/simgear/environment/metar.cxx
===================================================================
RCS file: /var/cvs/SimGear-0.3/source/simgear/environment/metar.cxx,v
retrieving revision 1.7
diff -b -u -p -r1.7 metar.cxx
--- ../../SimGear/source/simgear/environment/metar.cxx	6 Oct 2005 09:45:36 -0000	1.7
+++ ../../SimGear/source/simgear/environment/metar.cxx	25 Nov 2005 21:11:16 -0000
@@ -107,7 +107,7 @@ SGMetar::SGMetar(const string& m, const 
 	scanType();
 	if (!scanId() || !scanDate()) {
 		delete[] _data;
-		throw sg_io_exception("metar data bogus (" + _url + ')');
+		throw sg_io_exception("metar data bogus ", sg_location(_url));
 	}
 	scanModifier();
 
@@ -133,7 +133,7 @@ SGMetar::SGMetar(const string& m, const 
 
 	if (_grpcount < 4) {
 		delete[] _data;
-		throw sg_io_exception("metar data incomplete (" + _url + ')');
+		throw sg_io_exception("metar data incomplete ", sg_location(_url));
 	}
 
 	_url = "";
@@ -196,7 +196,7 @@ char *SGMetar::loadData(const char *id, 
 	sock->set_timeout(10000);
 	if (!sock->open(SG_IO_OUT)) {
 		delete sock;
-		throw sg_io_exception("cannot connect to " + host);
+		throw sg_io_exception("cannot connect to ", sg_location(host));
 	}
 
 	string get = "GET ";
@@ -233,7 +233,8 @@ char *SGMetar::loadData(const char *id, 
 	char *b = buf;
 	scanBoundary(&b);
 	if (*b == '<')
-		throw sg_io_exception("no metar data available from " + _url);
+		throw sg_io_exception("no metar data available from ", 
+				sg_location(_url));
 
 	char *metar = new char[strlen(b) + 2];	// make room for " \0"
 	strcpy(metar, b);
Index: ../../SimGear/source/simgear/scene/material/matlib.cxx
===================================================================
RCS file: /var/cvs/SimGear-0.3/source/simgear/scene/material/matlib.cxx,v
retrieving revision 1.16
diff -b -u -p -r1.16 matlib.cxx
--- ../../SimGear/source/simgear/scene/material/matlib.cxx	23 Oct 2005 13:47:46 -0000	1.16
+++ ../../SimGear/source/simgear/scene/material/matlib.cxx	25 Nov 2005 21:11:19 -0000
@@ -185,7 +185,7 @@ bool SGMaterialLib::load( const string &
     } catch (const sg_exception &ex) {
         SG_LOG( SG_INPUT, SG_ALERT, "Error reading materials: "
                 << ex.getMessage() );
-        throw ex;
+        throw;
     }
 
     int nMaterials = materials.nChildren();
Index: ../../SimGear/source/simgear/scene/model/model.cxx
===================================================================
RCS file: /var/cvs/SimGear-0.3/source/simgear/scene/model/model.cxx,v
retrieving revision 1.35
diff -b -u -p -r1.35 model.cxx
--- ../../SimGear/source/simgear/scene/model/model.cxx	25 Sep 2005 07:44:50 -0000	1.35
+++ ../../SimGear/source/simgear/scene/model/model.cxx	25 Nov 2005 21:11:20 -0000
@@ -283,7 +283,8 @@ sgLoad3DModel( const string &fg_root, co
     ssgTexturePath((char *)texturepath.c_str());
     model = (ssgBranch *)ssgLoad((char *)modelpath.c_str());
     if (model == 0)
-      throw sg_exception("Failed to load 3D model");
+      throw sg_io_exception("Failed to load 3D model", 
+			  sg_location(modelpath.str()));
   }
                                 // Set up the alignment node
   ssgTransform * alignmainmodel = new ssgTransform;
Index: ../../SimGear/source/simgear/sound/sample_openal.cxx
===================================================================
RCS file: /var/cvs/SimGear-0.3/source/simgear/sound/sample_openal.cxx,v
retrieving revision 1.23
diff -b -u -p -r1.23 sample_openal.cxx
--- ../../SimGear/source/simgear/sound/sample_openal.cxx	12 Nov 2005 12:22:23 -0000	1.23
+++ ../../SimGear/source/simgear/sound/sample_openal.cxx	25 Nov 2005 21:11:21 -0000
@@ -118,7 +118,8 @@ SGSoundSample::SGSoundSample( const char
   if (buffer == AL_NONE) {
      ALenum error = alutGetError ();
      print_openal_error("constructor (alutCreateBufferFromFile)");
-     throw sg_exception("Failed to load wav file: "+string(alutGetErrorString (error)));
+     throw sg_io_exception("Failed to load wav file: ",
+			 sg_location(string(alutGetErrorString (error))));
   }
 
 #else
@@ -383,7 +384,8 @@ SGSoundSample::load_file(const char *pat
     ALfloat freqf;
     data = alutLoadMemoryFromFile(samplepath.c_str(), &format, &size, &freqf );
     if (data == NULL) {
-        throw sg_exception("Failed to load wav file.");
+        throw sg_io_exception("Failed to load wav file.",
+					sg_location(samplepath.str()));
     }
     freq = (ALsizei)freqf;
 #else
@@ -395,7 +397,8 @@ SGSoundSample::load_file(const char *pat
                      &format, &data, &size, &freq, &loop );
 # endif
     if ( print_openal_error("constructor (alutLoadWAVFile)") ) {
-        throw sg_exception("Failed to load wav file.");
+        throw sg_io_exception("Failed to load wav file.",
+					sg_location(samplepath.str()));
     }
 #endif
 
Index: ../../SimGear/source/simgear/xml/easyxml.cxx
===================================================================
RCS file: /var/cvs/SimGear-0.3/source/simgear/xml/easyxml.cxx,v
retrieving revision 1.6
diff -b -u -p -r1.6 easyxml.cxx
--- ../../SimGear/source/simgear/xml/easyxml.cxx	15 Sep 2005 16:54:27 -0000	1.6
+++ ../../SimGear/source/simgear/xml/easyxml.cxx	25 Nov 2005 21:11:22 -0000
@@ -263,12 +263,12 @@ readXML (const string &path, XMLVisitor 
   if (input.good()) {
     try {
       readXML(input, visitor, path);
-    } catch (sg_io_exception &e) {
+    } catch (sg_io_exception &) {
       input.close();
-      throw e;
-    } catch (sg_throwable &t) {
+      throw;
+    } catch (sg_throwable &) {
       input.close();
-      throw t;
+      throw;
     }
   } else {
     throw sg_io_exception("Failed to open file", sg_location(path),
