Index: main/trunk/gli/src/org/greenstone/gatherer/collection/CollectionManager.java
===================================================================
--- main/trunk/gli/src/org/greenstone/gatherer/collection/CollectionManager.java	(revision 22410)
+++ main/trunk/gli/src/org/greenstone/gatherer/collection/CollectionManager.java	(revision 22454)
@@ -1206,6 +1206,16 @@
 	File collection_file = new File(location);
 
+	//String collection_name = collection_directory.getName();
+	String collection_name = "";		
 	File collection_directory = collection_file.getParentFile();
-	String collection_name = collection_directory.getName();
+
+	// To get colname = (colgroup/)coltailname, subtract Gatherer.getCollectDirectoryPath() from collection_directory:
+	int index = collection_directory.getAbsolutePath().indexOf(Gatherer.getCollectDirectoryPath());	
+	if(index == -1) {
+	    System.err.println("*** ERROR: collection directory " + collection_directory + " is not located in collect folder: " + Gatherer.getCollectDirectoryPath());
+	} else {
+	    index += Gatherer.getCollectDirectoryPath().length();	    
+	    collection_name = collection_directory.getAbsolutePath().substring(index);
+	}
 
 	if (Gatherer.isGsdlRemote) {
Index: main/trunk/gli/src/org/greenstone/gatherer/remote/RemoteGreenstoneServerAction.java
===================================================================
--- main/trunk/gli/src/org/greenstone/gatherer/remote/RemoteGreenstoneServerAction.java	(revision 22410)
+++ main/trunk/gli/src/org/greenstone/gatherer/remote/RemoteGreenstoneServerAction.java	(revision 22454)
@@ -350,6 +350,8 @@
 	    download_collection_file_command += "&file=" + URLEncoder.encode(collection_file_relative_path, "UTF-8");
 	    download_collection_file_command += "&lr=" + remote.lang_region;
-	    String zip_file_name = collection_name + "-" + collection_file.getName() + ".zip";
-	    String zip_file_path = collection_directory_path + zip_file_name;
+
+	    // String zip_file_name = collection_name + "-" + collection_file.getName() + ".zip";
+	    // String zip_file_path = collection_directory_path + zip_file_name;	    
+	    String zip_file_path = Gatherer.getCollectDirectoryPath() + collection_name + "-" + collection_file.getName() + ".zip"; // collect/(colgroup/)coltail/colfile.zip
 	    action_output = remote.downloadFile(download_collection_file_command, zip_file_path);
 
@@ -582,6 +584,9 @@
 
 	    // Zip up the files to send to the server
-	    String zip_file_name = collection_name + "-" + System.currentTimeMillis() + ".zip";
-	    String zip_file_path = collection_directory_path + zip_file_name;
+	    //String zip_file_name = collection_name + "-" + System.currentTimeMillis() + ".zip";
+            //String zip_file_path = collection_directory_path + zip_file_name;
+	    String zip_file_path = collection_directory_path; // collect/(colgroup/)coltail/
+	    String zip_file_name = new File(zip_file_path).getName() + "-" + System.currentTimeMillis() + ".zip"; // <collection_tail_name>-<time>.zip
+	    zip_file_path += zip_file_name; // collect/(colgroup/)coltail/coltail-time.zip
 	    ZipTools.zipFiles(zip_file_path, collection_directory_path, collection_file_relative_paths);
 	    
@@ -628,6 +633,9 @@
 	    progress_bar.setAction("Uploading files into collection...");
 	   
-	    String zip_file_name = collection_name + "-" + System.currentTimeMillis() + ".zip";
-	    String zip_file_path = Gatherer.getCollectDirectoryPath() + zip_file_name;
+	    //String zip_file_name = collection_name + "-" + System.currentTimeMillis() + ".zip";
+	    //String zip_file_path = Gatherer.getCollectDirectoryPath() + zip_file_name;
+	    String zip_file_path = Gatherer.getCollectDirectoryPath() 
+		+ collection_name + "-" + System.currentTimeMillis() + ".zip"; // "collect/(colgroup/)collection_tail_name-<time>.zip"
+	    String zip_file_name = new File(zip_file_path).getName(); // "collection_tail_name-<time>.zip"
 	    DebugStream.println("Zip file path: " + zip_file_path);
 
Index: main/trunk/gli/src/org/greenstone/gatherer/shell/GShell.java
===================================================================
--- main/trunk/gli/src/org/greenstone/gatherer/shell/GShell.java	(revision 22410)
+++ main/trunk/gli/src/org/greenstone/gatherer/shell/GShell.java	(revision 22454)
@@ -524,5 +524,5 @@
     }
 
-    /** Method for firing a process begun event which is called, strangly enough, when the process begins.
+    /** Method for firing a process begun event which is called, strangely enough, when the process begins.
      * @param type An <strong>int</strong> indicating the process type.
      * @param status An <strong>int</strong> specifying the current status of the process.
