diff -ur Muine-CVS/src/AddAlbumWindow.cs Muine-CVS-20041226-GConfValue/src/AddAlbumWindow.cs
--- Muine-CVS/src/AddAlbumWindow.cs	2004-12-14 07:24:30.000000000 -0800
+++ Muine-CVS-20041226-GConfValue/src/AddAlbumWindow.cs	2004-12-26 23:29:02.587262376 -0800
@@ -63,19 +63,8 @@
 
 		window.Title = Muine.Catalog.GetString ("Play Album");
 
-		int width;
-		try {
-			width = (int) Muine.GConfClient.Get ("/apps/muine/add_album_window/width");
-		} catch {
-			width = 350;
-		}
-
-		int height;
-		try {
-			height = (int) Muine.GConfClient.Get ("/apps/muine/add_album_window/height");
-		} catch {
-			height = 300;
-		}
+		int width = (int) Muine.GetGConfValue ("/apps/muine/add_album_window/width", 350);                
+		int height = (int) Muine.GetGConfValue ("/apps/muine/add_album_window/height", 300);
 
 		window.SetDefaultSize (width, height);
 
@@ -283,8 +272,8 @@
 
 		window.GetSize (out width, out height);
 
-		Muine.GConfClient.Set ("/apps/muine/add_album_window/width", width);
-		Muine.GConfClient.Set ("/apps/muine/add_album_window/height", height);
+		Muine.SetGConfValue ("/apps/muine/add_album_window/width", width);
+		Muine.SetGConfValue ("/apps/muine/add_album_window/height", height);
 	}
 
 	private void HandleRowActivated (IntPtr handle)
diff -ur Muine-CVS/src/AddSongWindow.cs Muine-CVS-20041226-GConfValue/src/AddSongWindow.cs
--- Muine-CVS/src/AddSongWindow.cs	2004-12-14 07:24:30.000000000 -0800
+++ Muine-CVS-20041226-GConfValue/src/AddSongWindow.cs	2004-12-26 23:29:02.587262376 -0800
@@ -58,19 +58,8 @@
 
 		window.Title = Muine.Catalog.GetString ("Play Song");
 
-		int width;
-		try {
-			width = (int) Muine.GConfClient.Get ("/apps/muine/add_song_window/width");
-		} catch {
-			width = 350;
-		}
-
-		int height;
-		try {
-			height = (int) Muine.GConfClient.Get ("/apps/muine/add_song_window/height");
-		} catch {
-			height = 300;
-		}
+		int width = (int) Muine.GetGConfValue ("/apps/muine/add_song_window/width", 350);
+		int height = (int) Muine.GetGConfValue ("/apps/muine/add_song_window/height", 300);
 
 		window.SetDefaultSize (width, height);
 
@@ -267,8 +256,8 @@
 
 		window.GetSize (out width, out height);
 
-		Muine.GConfClient.Set ("/apps/muine/add_song_window/width", width);
-		Muine.GConfClient.Set ("/apps/muine/add_song_window/height", height);
+		Muine.SetGConfValue ("/apps/muine/add_song_window/width", width);
+		Muine.SetGConfValue ("/apps/muine/add_song_window/height", height);
 	}
 
 	private void HandleRowActivated (IntPtr handle)
diff -ur Muine-CVS/src/CoverDatabase.cs Muine-CVS-20041226-GConfValue/src/CoverDatabase.cs
--- Muine-CVS/src/CoverDatabase.cs	2004-11-12 03:27:06.000000000 -0800
+++ Muine-CVS-20041226-GConfValue/src/CoverDatabase.cs	2004-12-26 23:29:02.587262376 -0800
@@ -51,11 +51,7 @@
 						   
 	public CoverDatabase (int version)
 	{
-		try {
-			amazon_locale = (string) Muine.GConfClient.Get ("/apps/muine/amazon_locale");
-		} catch {
-			amazon_locale = "us";
-		}
+		amazon_locale = (string) Muine.GetGConfValue ("/apps/muine/amazon_locale", "us");
 
 		DirectoryInfo dinfo = new DirectoryInfo (User.DirGet () + "/muine");
 		if (!dinfo.Exists) {
diff -ur Muine-CVS/src/FileSelector.cs Muine-CVS-20041226-GConfValue/src/FileSelector.cs
--- Muine-CVS/src/FileSelector.cs	2004-11-17 11:50:45.000000000 -0800
+++ Muine-CVS-20041226-GConfValue/src/FileSelector.cs	2004-12-26 23:29:02.588262224 -0800
@@ -40,12 +40,7 @@
 
 		gconf_path = gcp;
 
-		string start_dir;
-		try {
-			start_dir = (string) Muine.GConfClient.Get (gconf_path);
-		} catch {
-			start_dir = "~";
-		}
+		string start_dir = (string) Muine.GetGConfValue (gconf_path, "~");
 
 		start_dir.Replace ("~", Environment.GetEnvironmentVariable ("HOME"));
 
@@ -65,7 +60,7 @@
 
 		string ret = Uri;
 
-		Muine.GConfClient.Set (gconf_path,
+		Muine.SetGConfValue (gconf_path,
 		                       System.IO.Path.GetDirectoryName (ret) + "/");
 
 		Destroy ();
diff -ur Muine-CVS/src/GnomeProxy.cs Muine-CVS-20041226-GConfValue/src/GnomeProxy.cs
--- Muine-CVS/src/GnomeProxy.cs	2004-04-15 09:27:58.000000000 -0700
+++ Muine-CVS-20041226-GConfValue/src/GnomeProxy.cs	2004-12-26 23:29:02.588262224 -0800
@@ -28,26 +28,12 @@
 	
 	public GnomeProxy ()
 	{
-		try {
-			use = (bool) Muine.GConfClient.Get ("/system/http_proxy/use_http_proxy");
-		} catch {
-			use = false;
-		}
+		use = (bool) Muine.GetGConfValue ("/system/http_proxy/use_http_proxy", false);
 
 		if (use) {
-			string host;
-			try {
-				host = (string) Muine.GConfClient.Get ("/system/http_proxy/host");
-			} catch {
-				host = "";
-			}
+			string host = (string) Muine.GetGConfValue ("/system/http_proxy/host", "");
 
-			int port;
-			try {
-				port = (int) Muine.GConfClient.Get ("/system/http_proxy/port");
-			} catch {
-				port = 8080;
-			}
+			int port = (int) Muine.GetGConfValue ("/system/http_proxy/port", 8080);
 		
 			try {
 				proxy = new WebProxy (host, port);
@@ -57,27 +43,12 @@
 				return;
 			}
 
-			bool use_auth;
-			try {
-				use_auth = (bool) Muine.GConfClient.Get ("/system/http_proxy/use_authentication");
-			} catch {
-				use_auth = false;
-			}
+			bool use_auth = (bool) Muine.GetGConfValue ("/system/http_proxy/use_authentication", false);
 
 			if (use_auth) {
-				string user;
-				try {
-					user = (string) Muine.GConfClient.Get ("/system/http_proxy/authentication_user");
-				} catch {
-					user = "";
-				}
+				string user = (string) Muine.GetGConfValue ("/system/http_proxy/authentication_user", "");
 
-				string passwd;
-				try {
-					passwd = (string) Muine.GConfClient.Get ("/system/http_proxy/authentication_password");
-				} catch {
-					passwd = "";
-				}
+				string passwd = (string) Muine.GetGConfValue ("/system/http_proxy/authentication_password", "");
 				
 				try {
 					proxy.Credentials = new NetworkCredential (user, passwd);
diff -ur Muine-CVS/src/InfoWindow.cs Muine-CVS-20041226-GConfValue/src/InfoWindow.cs
--- Muine-CVS/src/InfoWindow.cs	2004-04-13 04:41:38.000000000 -0700
+++ Muine-CVS-20041226-GConfValue/src/InfoWindow.cs	2004-12-26 23:29:02.588262224 -0800
@@ -55,19 +55,8 @@
 
 		window.Title = title;
 
-		int width;
-		try {
-			width = (int) Muine.GConfClient.Get ("/apps/muine/information_window/width");
-		} catch {
-			width = 350;
-		}
-
-		int height;
-		try {
-			height = (int) Muine.GConfClient.Get ("/apps/muine/information_window/height");
-		} catch {
-			height = 300;
-		}
+		int width = (int) Muine.GetGConfValue ("/apps/muine/information_window/width", 350);
+		int height = (int) Muine.GetGConfValue ("/apps/muine/information_window/height", 300);
 
 		window.SetDefaultSize (width, height);
 
@@ -91,8 +80,8 @@
 
 		window.GetSize (out width, out height);
 
-		Muine.GConfClient.Set ("/apps/muine/information_window/width", width);
-		Muine.GConfClient.Set ("/apps/muine/information_window/height", height);
+		Muine.SetGConfValue ("/apps/muine/information_window/width", width);
+		Muine.SetGConfValue ("/apps/muine/information_window/height", height);
 	}
 
 	public void Run ()
diff -ur Muine-CVS/src/Muine.cs Muine-CVS-20041226-GConfValue/src/Muine.cs
--- Muine-CVS/src/Muine.cs	2004-11-12 02:59:39.000000000 -0800
+++ Muine-CVS-20041226-GConfValue/src/Muine.cs	2004-12-26 23:29:02.588262224 -0800
@@ -200,4 +200,27 @@
 		//Application.Quit ();
 		Environment.Exit (0);
 	}
+	
+	public static object GetGConfValue (string key)
+	{
+	       return GConfClient.Get (key);
+	}
+	
+	public static object GetGConfValue (string key, object default_val)
+        {
+                object val;
+
+                try {
+                        val = GetGConfValue (key);
+                } catch {
+                        val = default_val;
+                }
+
+                return val;
+        }
+        
+        public static void SetGConfValue (string key, object val)
+        {
+        	GConfClient.Set (key, val);        	
+        }
 }
diff -ur Muine-CVS/src/PlaylistWindow.cs Muine-CVS-20041226-GConfValue/src/PlaylistWindow.cs
--- Muine-CVS/src/PlaylistWindow.cs	2004-12-18 02:01:10.000000000 -0800
+++ Muine-CVS-20041226-GConfValue/src/PlaylistWindow.cs	2004-12-26 23:29:02.589262072 -0800
@@ -377,12 +377,7 @@
 
 	public void CheckFirstStartUp () 
  	{
-		bool first_start;
- 		try { 
- 			first_start = (bool) Muine.GConfClient.Get ("/apps/muine/first_start");
- 		} catch {
- 			first_start = true;
- 		}
+ 		bool first_start = (bool) Muine.GetGConfValue ("/apps/muine/first_start", true);
 
 		if (first_start == false)
 			return;
@@ -396,7 +391,7 @@
  		if (!musicdir.Exists) {
  			NoMusicFoundWindow w = new NoMusicFoundWindow (this);
 
-	 		Muine.GConfClient.Set ("/apps/muine/first_start", false);
+	 		Muine.SetGConfValue ("/apps/muine/first_start", false);
  		} else { 
  			/* create a playlists directory if it still doesn't exists */
  			DirectoryInfo playlistsdir = new DirectoryInfo (dir + "Music/Playlists/");
@@ -409,7 +404,7 @@
  			Muine.DB.AddWatchedFolder (musicdir.FullName);
 
 			/* do this here, because the folder is watched now */
-	 		Muine.GConfClient.Set ("/apps/muine/first_start", false);
+	 		Muine.SetGConfValue ("/apps/muine/first_start", false);
 	
  			HandleDirectory (musicdir, pw);
 
@@ -419,19 +414,8 @@
 	
 	private void SetupWindowSize ()
 	{
-		int width;
-		try {
-			width = (int) Muine.GConfClient.Get ("/apps/muine/playlist_window/width");
-		} catch {
-			width = 500;
-		}
-		
-		int height;
-		try {
-			height = (int) Muine.GConfClient.Get ("/apps/muine/playlist_window/height");
-		} catch {
-			height = 400;
-		}
+		int width = (int) Muine.GetGConfValue ("/apps/muine/playlist_window/width", 500);
+		int height = (int) Muine.GetGConfValue ("/apps/muine/playlist_window/height", 400);
 
 		SetDefaultSize (width, height);
 
@@ -512,22 +496,13 @@
 		tooltips.SetTip (volume_button,
 				 Muine.Catalog.GetString ("Change the volume level"), null);
 
-		int vol;
-		try {
-			vol = (int) Muine.GConfClient.Get ("/apps/muine/volume");
-		} catch {
-			vol = 50;
-		}
+		int vol = (int) Muine.GetGConfValue ("/apps/muine/volume", 50);
 
 		volume_button.Volume = vol;
 		player.Volume = vol;
 
 		block_repeat_action = true;
-		try {
-			repeat_action.Active = (bool) Muine.GConfClient.Get ("/apps/muine/repeat");
-		} catch {
-			repeat_action.Active = false;
-		}
+		repeat_action.Active = (bool) Muine.GetGConfValue ("/apps/muine/repeat", false);
 		block_repeat_action = false;
 	}
 
@@ -1092,15 +1067,15 @@
 
 		GetSize (out width, out height);
 
-		Muine.GConfClient.Set ("/apps/muine/playlist_window/width", width);
-		Muine.GConfClient.Set ("/apps/muine/playlist_window/height", height);
+		Muine.SetGConfValue ("/apps/muine/playlist_window/width", width);
+		Muine.SetGConfValue ("/apps/muine/playlist_window/height", height);
 	}
 
 	private void HandleVolumeChanged (int vol)
 	{
 		player.Volume = vol;
 
-		Muine.GConfClient.Set ("/apps/muine/volume", vol);
+		Muine.SetGConfValue ("/apps/muine/volume", vol);
 	}
 
 	private void HandleToggleWindowVisibilityCommand (object o, EventArgs args)
@@ -1474,12 +1449,7 @@
 		fc.AddButton (Muine.Catalog.GetString ("_Import"), ResponseType.Ok);
 		fc.DefaultResponse = ResponseType.Ok;
 		
-		string start_dir;
-		try {
-			start_dir = (string) Muine.GConfClient.Get ("/apps/muine/default_import_folder");
-		} catch {
-			start_dir = "~";
-		}
+		string start_dir = (string) Muine.GetGConfValue ("/apps/muine/default_import_folder", "~");
 
 		start_dir.Replace ("~", Environment.GetEnvironmentVariable ("HOME"));
 
@@ -1498,7 +1468,7 @@
 
 		string res = StringUtils.LocalPathFromUri (fc.Uri);
 
-		Muine.GConfClient.Set ("/apps/muine/default_import_folder", res);
+		Muine.SetGConfValue ("/apps/muine/default_import_folder", res);
 
 		DirectoryInfo dinfo = new DirectoryInfo (res);
 			
@@ -1640,7 +1610,7 @@
 		if (block_repeat_action)
 			return;
 
-		Muine.GConfClient.Set ("/apps/muine/repeat", repeat_action.Active);
+		Muine.SetGConfValue ("/apps/muine/repeat", repeat_action.Active);
 
 		NSongsChanged ();
 	}
diff -ur Muine-CVS/src/SongDatabase.cs Muine-CVS-20041226-GConfValue/src/SongDatabase.cs
--- Muine-CVS/src/SongDatabase.cs	2004-11-12 02:59:39.000000000 -0800
+++ Muine-CVS-20041226-GConfValue/src/SongDatabase.cs	2004-12-26 23:29:02.589262072 -0800
@@ -101,12 +101,7 @@
 		db_foreach (dbf, new DecodeFuncDelegate (DecodeFunc), IntPtr.Zero);
 
 		/* add file monitors */
-		string [] folders;
-		try {
-			folders = (string []) Muine.GConfClient.Get ("/apps/muine/watched_folders");
-		} catch {
-			folders = new string [0];
-		}
+		string [] folders = (string []) Muine.GetGConfValue ("/apps/muine/watched_folders", new string [0]);
 
 		foreach (string folder in folders)
 			AddMonitor (folder);
@@ -253,13 +248,7 @@
 	/*** monitoring ***/
 	public void AddWatchedFolder (string folder)
 	{
-		string [] folders;
-		
-		try {
-			folders = (string []) Muine.GConfClient.Get ("/apps/muine/watched_folders");
-		} catch {
-			folders = new string [0];
-		}
+		string [] folders = (string []) Muine.GetGConfValue ("/apps/muine/watched_folders", new string [0]);
 
 		string [] new_folders = new string [folders.Length + 1];
 
@@ -273,7 +262,7 @@
 
 		new_folders [folders.Length] = folder;
 
-		Muine.GConfClient.Set ("/apps/muine/watched_folders", new_folders);
+		Muine.SetGConfValue ("/apps/muine/watched_folders", new_folders);
 
 		AddMonitor (folder);
 	}
@@ -480,12 +469,7 @@
 		}
 
 		/* check for new songs */
-		string [] folders;
-		try {
-			folders = (string []) Muine.GConfClient.Get ("/apps/muine/watched_folders");
-		} catch {
-			folders = new string [0];
-		}
+		string [] folders = (string []) Muine.GetGConfValue ("/apps/muine/watched_folders", new string [0]);
 
 		foreach (string folder in folders) {
 			DirectoryInfo dinfo = new DirectoryInfo (folder);
