Index: main/trunk/gli/src/org/greenstone/gatherer/Gatherer.java
===================================================================
--- main/trunk/gli/src/org/greenstone/gatherer/Gatherer.java	(revision 32924)
+++ main/trunk/gli/src/org/greenstone/gatherer/Gatherer.java	(revision 32925)
@@ -1234,4 +1234,7 @@
 	*/
 	static public void missingEXEC() {
+	    try {
+	    SwingUtilities.invokeAndWait(new Runnable() {
+	      public void run() {
 		WarningDialog dialog;
 		String configPropertyName = "general.library_url"+Configuration.gliPropertyNameSuffix();
@@ -1291,4 +1294,9 @@
 			}
 		}
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }
 	}
 
@@ -1298,5 +1306,7 @@
 	*/
 	static private void popupFedoraInfo() {
-
+	    try {
+	    SwingUtilities.invokeAndWait(new Runnable() {
+	      public void run() {
 		FedoraLogin dialog = new FedoraLogin("Fedora Login", false);
 
@@ -1364,4 +1374,9 @@
 		
 		// Now we are connected.
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }	
 	}
 
@@ -1370,4 +1385,7 @@
 	static private void requestGLIServerURL()
 	{
+	    try {
+	    SwingUtilities.invokeAndWait(new Runnable() {
+	      public void run() {
 		WarningDialog dialog;
 		String[] defaultURLs = {
@@ -1414,4 +1432,9 @@
 			}
 		}
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }
 	}
 
@@ -1420,20 +1443,40 @@
 	*/
 	static private void missingGSDL() {
+	    try {
+	    SwingUtilities.invokeAndWait(new Runnable() {
+	      public void run() {
 		WarningDialog dialog = new WarningDialog("warning.MissingGSDL", Dictionary.get("MissingGSDL.Title"), Dictionary.get("MissingGSDL.Message"), null, false);
 		dialog.display();
 		dialog.dispose();
 		dialog = null;
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }
 	}
 
 	/** Prints a warning message about missing a valid ImageMagick path, which although not fatal means building image collections won't work */
 	static private void missingImageMagick() {
+	    try {
+	    SwingUtilities.invokeAndWait(new Runnable() {
+	      public void run() {
 		WarningDialog dialog = new WarningDialog("warning.MissingImageMagick", Dictionary.get("MissingImageMagick.Title"), Dictionary.get("MissingImageMagick.Message"), null, false);
 		dialog.display();
 		dialog.dispose();
 		dialog = null;
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }
 	}
 
     	/** Prints a message informing the user where they can get PDFBox from to process PDF files of v1.5 and greater */
     static private void missingPDFBox(String zipExtension, String extFolder) {
+     try {
+      SwingUtilities.invokeAndWait(new Runnable() {
+       public void run() {
+
 	// point to the correct version of the PDFBox extension for this Greenstone release
 	String releaseTag = "";
@@ -1446,24 +1489,48 @@
 		dialog.dispose();
 		dialog = null;
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }		
 	}
 
 	/** Prints a warning message about missing a valid PERL path, which although not fatal pretty much ensures no collection creation/building will work properly in the GLI. */
 	static private void missingPERL() {
+	    try {
+	    SwingUtilities.invokeAndWait(new Runnable() {
+	      public void run() {
 		WarningDialog dialog = new WarningDialog("warning.MissingPERL", Dictionary.get("MissingPERL.Title"), Dictionary.get("MissingPERL.Message"), null, false);
 		dialog.display();
 		dialog.dispose();
 		dialog = null;
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }
 	}
 
     /** Prints a message informing the user that their collecthome is non-standard (not inside GS installation) */
     static private void nonStandardCollectHomeMessage(String open_collection_file_path, String defaultColDir) {
+     try {
+      SwingUtilities.invokeAndWait(new Runnable() {
+       public void run() {
 	WarningDialog dialog = new WarningDialog("warning.NonStandardCollectHome", Dictionary.get("NonStandardCollectHome.Title"), Dictionary.get("NonStandardCollectHome.Message", new String[]{open_collection_file_path, defaultColDir}), null, false);
 		dialog.display();
 		dialog.dispose();
 		dialog = null;
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }
 	}
 
 	/** Prints a warning message about the OS not supporting multiple filename encodings.  */
-	static private void multipleFilenameEncodingsNotSupported() {	
+	static private void multipleFilenameEncodingsNotSupported() {
+	    try {
+	    SwingUtilities.invokeAndWait(new Runnable() {
+	      public void run() {
 		WarningDialog dialog = new WarningDialog("warning.NoEncodingSupport", 
 		Dictionary.get("NoEncodingSupport.Title"), 
@@ -1472,4 +1539,9 @@
 		dialog.dispose();
 		dialog = null;
+	      }
+	    });
+	  } catch(Exception e) { //InterruptedException or InvocationTargetException
+	      e.printStackTrace();
+	  }
 	}
 
