Index: src/edu/ucsb/nceas/metacat/DocumentImpl.java
===================================================================
--- src/edu/ucsb/nceas/metacat/DocumentImpl.java	(revision 7839)
+++ src/edu/ucsb/nceas/metacat/DocumentImpl.java	(revision 7840)
@@ -3451,8 +3451,12 @@
             conn.setAutoCommit(true);
                         
             // add force delete replcation document here.
+            String deleteAction = ReplicationService.FORCEREPLICATEDELETE;
+            if (removeAll) {
+                deleteAction = ReplicationService.FORCEREPLICATEDELETEALL;
+            }
             ForceReplicationHandler frh = new ForceReplicationHandler(
-                             accnum, ForceReplicationHandler.DELETE, isXML, notifyServer);
+                             accnum, deleteAction, isXML, notifyServer);
             logMetacat.debug("DocumentImpl.delete - ForceReplicationHandler created: " + frh.toString());
             
            double end = System.currentTimeMillis()/1000;
Index: src/edu/ucsb/nceas/metacat/replication/ForceReplicationHandler.java
===================================================================
--- src/edu/ucsb/nceas/metacat/replication/ForceReplicationHandler.java	(revision 7839)
+++ src/edu/ucsb/nceas/metacat/replication/ForceReplicationHandler.java	(revision 7840)
@@ -64,11 +64,6 @@
   private static Logger logReplication = Logger.getLogger("ReplicationLogging");
   private static Logger logMetacat = Logger.getLogger(ForceReplicationHandler.class);
 
-  //constant
-  public static final String DELETE = "delete";
-
-
-
   /**
    * Constructor of ForceReplicationHandler
    * @param docid the docid to force replicate
@@ -196,10 +191,10 @@
 										+ MetacatUtil.getLocalReplicationServerName()
 										+ "&docid=" + docid + "&dbaction=" + action);
 								//over write the url for delete
-								if (action != null && action.equals(DELETE)) {
+								if (action != null && (action.equals(ReplicationService.FORCEREPLICATEDELETE) || action.equals(ReplicationService.FORCEREPLICATEDELETEALL))) {
 									comeAndGetIt = new URL("https://" + server
 											+ "?action="
-											+ ReplicationService.FORCEREPLICATEDELETE
+											+ action
 											+ "&docid=" + docid + "&server="
 											+ MetacatUtil.getLocalReplicationServerName());
 
@@ -218,10 +213,10 @@
 										+ MetacatUtil.getLocalReplicationServerName()
 										+ "&docid=" + docid + "&dbaction=" + action);
 								//over write the url for delete
-								if (action != null && action.equals(DELETE)) {
+								if (action != null && (action.equals(ReplicationService.FORCEREPLICATEDELETE) || action.equals(ReplicationService.FORCEREPLICATEDELETEALL))) {
 									comeAndGetIt = new URL("https://" + server
 											+ "?action="
-											+ ReplicationService.FORCEREPLICATEDELETE
+											+ action
 											+ "&docid=" + docid + "&server="
 											+ MetacatUtil.getLocalReplicationServerName());
 
@@ -240,10 +235,10 @@
 										+ MetacatUtil.getLocalReplicationServerName()
 										+ "&docid=" + docid + "&dbaction=" + action);
 								//over write the url for delete
-								if (action != null && action.equals(DELETE)) {
+								if (action != null && (action.equals(ReplicationService.FORCEREPLICATEDELETE) || action.equals(ReplicationService.FORCEREPLICATEDELETEALL))) {
 									comeAndGetIt = new URL("https://" + server
 											+ "?action="
-											+ ReplicationService.FORCEREPLICATEDELETE
+											+ action
 											+ "&docid=" + docid + "&server="
 											+ MetacatUtil.getLocalReplicationServerName());
 
@@ -263,10 +258,10 @@
 										+ MetacatUtil.getLocalReplicationServerName()
 										+ "&docid=" + docid + "&dbaction=" + action);
 								//over write the url for delete
-								if (action != null && action.equals(DELETE)) {
+								if (action != null && (action.equals(ReplicationService.FORCEREPLICATEDELETE) || action.equals(ReplicationService.FORCEREPLICATEDELETEALL))) {
 									comeAndGetIt = new URL("https://" + server
 											+ "?action="
-											+ ReplicationService.FORCEREPLICATEDELETE
+											+ action
 											+ "&docid=" + docid + "&server="
 											+ MetacatUtil.getLocalReplicationServerName());
 
Index: src/edu/ucsb/nceas/metacat/replication/ReplicationService.java
===================================================================
--- src/edu/ucsb/nceas/metacat/replication/ReplicationService.java	(revision 7839)
+++ src/edu/ucsb/nceas/metacat/replication/ReplicationService.java	(revision 7840)
@@ -111,6 +111,7 @@
 	private static Vector<String> fileLocks = new Vector<String>();
 //	private Thread lockThread = null;
 	public static final String FORCEREPLICATEDELETE = "forcereplicatedelete";
+	public static final String FORCEREPLICATEDELETEALL = "forcereplicatedeleteall";
 	private static String TIMEREPLICATION = "replication.timedreplication";
 	private static String TIMEREPLICATIONINTERVAl ="replication.timedreplicationinterval";
 	private static String FIRSTTIME = "replication.firsttimedreplication";
@@ -721,7 +722,7 @@
 	 */
 	protected static void handleForceReplicateDeleteRequest(
 			Hashtable<String, String[]> params, HttpServletResponse response,
-			HttpServletRequest request) {
+			HttpServletRequest request, boolean removeAll) {
 		String server = ((String[]) params.get("server"))[0]; // the server that
 		String docid = ((String[]) params.get("docid"))[0]; // sent the document
 		try {
@@ -729,7 +730,7 @@
 			logReplication.info("ReplicationService.handleForceReplicateDeleteRequest - force replication delete docid " + docid);
 			logReplication.info("ReplicationService.handleForceReplicateDeleteRequest - Force replication delete request from: " + server);
 			logReplication.info("ReplicationService.handleForceReplicateDeleteRequest - Force replication delete docid: " + docid);
-			DocumentImpl.delete(docid, null, null, server, false);
+			DocumentImpl.delete(docid, null, null, server, removeAll);
 			logReplication.info("ReplicationService.handleForceReplicateDeleteRequest - document " + docid + " was successfully deleted ");
 			EventLog.getInstance().log(request.getRemoteAddr(), request.getHeader("User-Agent"), REPLICATIONUSER, docid,
 					"delete");
Index: src/edu/ucsb/nceas/metacat/replication/ReplicationServlet.java
===================================================================
--- src/edu/ucsb/nceas/metacat/replication/ReplicationServlet.java	(revision 7839)
+++ src/edu/ucsb/nceas/metacat/replication/ReplicationServlet.java	(revision 7840)
@@ -156,9 +156,12 @@
 				ReplicationService.handleForceReplicateRequest(params, response, request);
 			} else if (action.equals("forcereplicatesystemmetadata")) {
 				ReplicationService.handleForceReplicateSystemMetadataRequest(params, response, request);
-			} else if (action.equals("forcereplicatedelete")) {
+			} else if (action.equals(ReplicationService.FORCEREPLICATEDELETE)) {
 				// read a specific docid from remote host, and store it into local host
-				ReplicationService.handleForceReplicateDeleteRequest(params, response, request);
+				ReplicationService.handleForceReplicateDeleteRequest(params, response, request, false);
+			} else if (action.equals(ReplicationService.FORCEREPLICATEDELETEALL)) {
+				// read a specific docid from remote host, and store it into local host
+				ReplicationService.handleForceReplicateDeleteRequest(params, response, request, true);
 			} else if (action.equals("update")) {
 				// request an update list from the server
 				ReplicationService.handleUpdateRequest(params, response);
