Index: /trunk/src/org/expeditee/gui/DisplayController.java
===================================================================
--- /trunk/src/org/expeditee/gui/DisplayController.java	(revision 1244)
+++ /trunk/src/org/expeditee/gui/DisplayController.java	(revision 1245)
@@ -70,5 +70,8 @@
 	
 	// To help title calculations on frame
-	public static final int MINIMUM_FRAME_WIDTH = 512;
+	public static final int MINIMUM_FRAME_WIDTH  = 512;
+	public static final int MINIMUM_FRAME_HEIGHT = 512;
+	
+	private static boolean DISPLAYED_ABOVE_MINIMUM_FRAME_WIDTH = false;
 	
 	/** Convenience definition of TwinFramesSide.LEFT. */
@@ -1242,4 +1245,15 @@
 	}
 	
+	public static Dimension getSizeEnforceMinimum() {
+		Dimension actual_dim = getFramePaintArea().getSize(); 
+		
+		int enforced_width  = Math.max(actual_dim.width, MINIMUM_FRAME_WIDTH);
+		int enforced_height = Math.max(actual_dim.height,MINIMUM_FRAME_HEIGHT);
+		
+		Dimension enforced_dim = new Dimension(enforced_width,enforced_height);
+		
+		return enforced_dim;
+	}
+	
 	/** Tells the display controller to get the current window size. */
 	public static void refreshWindowSize()
@@ -1247,4 +1261,7 @@
 		_windowSize = EcosystemManager.getGraphicsManager().getWindowSize();
 		_refreshBuffer = Image.createImage(_windowSize, true);
+		if (_windowSize.getWidth() > MINIMUM_FRAME_WIDTH) {
+			DISPLAYED_ABOVE_MINIMUM_FRAME_WIDTH = true;
+		}
 		refreshPaintAreas();
 	}
Index: /trunk/src/org/expeditee/items/ItemUtils.java
===================================================================
--- /trunk/src/org/expeditee/items/ItemUtils.java	(revision 1244)
+++ /trunk/src/org/expeditee/items/ItemUtils.java	(revision 1245)
@@ -404,5 +404,5 @@
 			File file = null;
 
-			for (String dir : FolderSettings.ImageDirs.get()) {
+			for (String dir : FolderSettings.ImageDirs.getAbsoluteDirs()) {
 				file = new File(dir + path);
 				if (file.exists() && !file.isDirectory()) {
Index: /trunk/src/org/expeditee/items/Text.java
===================================================================
--- /trunk/src/org/expeditee/items/Text.java	(revision 1244)
+++ /trunk/src/org/expeditee/items/Text.java	(revision 1245)
@@ -2282,6 +2282,6 @@
 			int model_frame_name_x = modelFrame.getNameItem().getX();
 			if (model_frame_name_x < DisplayController.MINIMUM_FRAME_WIDTH) {
-				System.err.println("resetTitlePostion(): value to be used as right margin from position of frameName < 512");
-				System.err.println("Overriding to ensure reasonable width for title"); 
+				System.err.println("Text::resetTitlePostion(): value to be used as right margin from position of frameName < 512");
+				System.err.println("  Overriding to ensure reasonable width for title"); 
 				model_frame_name_x = DisplayController.MINIMUM_FRAME_WIDTH;
 			}
@@ -2457,5 +2457,6 @@
 
 	public void resetFrameNamePosition() {
-		Dimension maxSize = DisplayController.getFramePaintArea().getSize();
+		Dimension maxSize = DisplayController.getSizeEnforceMinimum();
+				
 		if (maxSize != null) {
 			// setMaxWidth(maxSize.width);
Index: /trunk/src/org/expeditee/setting/DirectoryListSetting.java
===================================================================
--- /trunk/src/org/expeditee/setting/DirectoryListSetting.java	(revision 1244)
+++ /trunk/src/org/expeditee/setting/DirectoryListSetting.java	(revision 1245)
@@ -38,5 +38,15 @@
 			}
 
-			String abs = parent_folder + rel;
+			String abs = null;
+			File rel_file = new File(rel);
+			if (rel_file.isAbsolute()) {
+				// The directory being stored somehow wasn't relative to expeditee.home
+				// => use it 'as is'
+				abs = rel;
+			}
+			else {
+				abs = parent_folder + rel;
+				
+			}
 			value_absolute_dir.add(abs);
 		}
@@ -46,8 +56,14 @@
 
 	public void addAbsoluteDir(String absolute_dir) {
-		String parent_folder = FrameIO.PARENT_FOLDER;
 		boolean need_file_sep_replace = (!File.separator.equals("/"));
 
-		String rel = absolute_dir.substring(parent_folder.length());
+		String rel = null;
+		if (absolute_dir.startsWith(FrameIO.PARENT_FOLDER)) {
+			// only remove parent_folder if it matches
+			rel = absolute_dir.substring(FrameIO.PARENT_FOLDER.length());
+		}
+		else {
+			rel = absolute_dir;
+		}
 
 		if (need_file_sep_replace) {
@@ -55,14 +71,4 @@
 		}
 
-		/*
-			String rel;
-			if (absolute_dir.startsWith(parent_folder)) {
-				rel = absolute_dir.substring(parent_folder.length());
-			}
-			else {
-				rel = absolute_dir;
-			}
-		 */
-
 		_value.add(rel);
 	}
Index: /trunk/src/org/expeditee/settings/UserSettings.java
===================================================================
--- /trunk/src/org/expeditee/settings/UserSettings.java	(revision 1244)
+++ /trunk/src/org/expeditee/settings/UserSettings.java	(revision 1245)
@@ -263,10 +263,10 @@
 			// 1. resources-<username>\images	Generated on user account creation and must be refreshed on user switching.
 			// 2. IMAGES_PATH					<expeditee-home>\resources-public\images
-			FolderSettings.ImageDirs.get().add(FrameIO.IMAGES_PRIVATE_PATH);
-			FolderSettings.ImageDirs.get().add(FrameIO.IMAGES_PATH);
+			FolderSettings.ImageDirs.addAbsoluteDir(FrameIO.IMAGES_PRIVATE_PATH);
+			FolderSettings.ImageDirs.addAbsoluteDir(FrameIO.IMAGES_PATH);
 			FolderSettings.ImageDirs.setDefault(FolderSettings.ImageDirs.get());
 			
-			FolderSettings.AudioDirs.get().add(FrameIO.AUDIO_PRIVATE_PATH);
-			FolderSettings.AudioDirs.get().add(FrameIO.AUDIO_PATH);
+			FolderSettings.AudioDirs.addAbsoluteDir(FrameIO.AUDIO_PRIVATE_PATH);
+			FolderSettings.AudioDirs.addAbsoluteDir(FrameIO.AUDIO_PATH);
 			FolderSettings.AudioDirs.setDefault(FolderSettings.AudioDirs.get());
 			
@@ -279,8 +279,8 @@
 			FolderSettings.FrameDirs.setDefault(FolderSettings.FrameDirs.get());
 
-			FolderSettings.ImageDirs.get().add(FrameIO.IMAGES_PATH);
+			FolderSettings.ImageDirs.addAbsoluteDir(FrameIO.IMAGES_PATH);
 			FolderSettings.ImageDirs.setDefault(FolderSettings.ImageDirs.get());
 			
-			FolderSettings.AudioDirs.get().add(FrameIO.AUDIO_PATH);
+			FolderSettings.AudioDirs.addAbsoluteDir(FrameIO.AUDIO_PATH);
 			FolderSettings.AudioDirs.setDefault(FolderSettings.AudioDirs.get());
 		}
Index: /trunk/src/org/expeditee/settings/folders/FolderSettings.java
===================================================================
--- /trunk/src/org/expeditee/settings/folders/FolderSettings.java	(revision 1244)
+++ /trunk/src/org/expeditee/settings/folders/FolderSettings.java	(revision 1245)
@@ -59,11 +59,6 @@
 	};
 
-	public static ListSetting<String> ImageDirs = new ListSetting<String>("Directories to look in for images", "ImageDirs") {
-		@Override
-		public boolean setSetting(Text text) {
-			_value.addAll(FrameUtils.getDirs(text));
-			return true;
-		}
-	};
+	public static DirectoryListSetting ImageDirs = new DirectoryListSetting("Directories to look in for images", "ImageDirs");
+			
 	public static final Setting ImageDir = new Setting("Adds a directory to look in for images", "ImageDir") {
 		@Override
@@ -91,11 +86,6 @@
 	
 	
-	public static ListSetting<String> AudioDirs = new ListSetting<String>("Directories to look in for audio", "AudioDirs") {
-		@Override
-		public boolean setSetting(Text text) {
-			_value.addAll(FrameUtils.getDirs(text));
-			return true;
-		}
-	};
+	public static DirectoryListSetting AudioDirs = new DirectoryListSetting("Directories to look in for audio", "AudioDirs");
+	
 	public static final Setting AudioDir = new Setting("Adds a directory to look in for audio", "AudioDir") {
 		@Override
