Index: trunk/ippTools/share/Makefile.am
===================================================================
--- trunk/ippTools/share/Makefile.am	(revision 36968)
+++ trunk/ippTools/share/Makefile.am	(revision 36981)
@@ -508,3 +508,4 @@
 	remotetool_definebyquery_warp.sql \
 	remotetool_definebyquery_stack.sql \
+	remotetool_dropcomponent.sql \
 	remotetool_updatepoll.sql
Index: trunk/ippTools/share/remotetool_dropcomponent.sql
===================================================================
--- trunk/ippTools/share/remotetool_dropcomponent.sql	(revision 36981)
+++ trunk/ippTools/share/remotetool_dropcomponent.sql	(revision 36981)
@@ -0,0 +1,4 @@
+DELETE FROM remoteComponent
+WHERE 
+remote_id = %ld AND
+stage_id  = %ld
Index: trunk/ippTools/src/remotetool.c
===================================================================
--- trunk/ippTools/src/remotetool.c	(revision 36968)
+++ trunk/ippTools/src/remotetool.c	(revision 36981)
@@ -23,4 +23,5 @@
 
 // Update
+static bool dropcomponentMode(pxConfig *config);
 static bool updaterunMode(pxConfig *config);
 static bool updatepollMode(pxConfig *config);
@@ -49,4 +50,5 @@
     MODECASE(REMOTETOOL_MODE_LISTRUN,       listrunMode);
     MODECASE(REMOTETOOL_MODE_LISTCOMPONENT, listcomponentMode);
+    MODECASE(REMOTETOOL_MODE_DROPCOMPONENT, dropcomponentMode);
     MODECASE(REMOTETOOL_MODE_UPDATERUN,     updaterunMode);
     MODECASE(REMOTETOOL_MODE_UPDATEPOLL,    updatepollMode);
@@ -314,4 +316,41 @@
 // Update
 
+static bool dropcomponentMode(pxConfig *config)
+{
+  // Assert that we have a unique component to operate on.
+  PXOPT_LOOKUP_S64(remote_id,config->args, "-remote_id",true, false);
+  psAssert(remote_id,"This must exist for this mode to be safe.");
+  PXOPT_LOOKUP_S64(stage_id, config->args, "-stage_id", true, false);
+  psAssert(stage_id,"This must exist for this mode to be safe.");
+
+  psString query = pxDataGet("remotetool_dropcomponent.sql");
+  if (!query) {
+    psError(PXTOOLS_ERR_SYS, false, "Failed to retreive SQL statement");
+    return false;
+  }
+  
+  if (!psDBTransaction(config->dbh)) {
+    psError(PS_ERR_UNKNOWN, false, "database error");
+    return false;
+  }
+
+  if (!p_psDBRunQueryF(config->dbh, query, remote_id, stage_id)) {
+    psError(PS_ERR_UNKNOWN, false, "Database error");
+    psFree(query);
+    return false;
+  }
+  psFree(query);
+  
+  
+
+  // point of no return
+  if (!psDBCommit(config->dbh)) {
+    psError(PS_ERR_UNKNOWN, false, "database error");
+    return false;
+  }
+  
+  return true;
+}
+
 static bool updaterunMode(pxConfig *config)
 {
Index: trunk/ippTools/src/remotetool.h
===================================================================
--- trunk/ippTools/src/remotetool.h	(revision 36968)
+++ trunk/ippTools/src/remotetool.h	(revision 36981)
@@ -13,4 +13,5 @@
   REMOTETOOL_MODE_LISTRUN,
   REMOTETOOL_MODE_LISTCOMPONENT,
+  REMOTETOOL_MODE_DROPCOMPONENT,
   REMOTETOOL_MODE_UPDATERUN,
   REMOTETOOL_MODE_UPDATEPOLL,
Index: trunk/ippTools/src/remotetoolConfig.c
===================================================================
--- trunk/ippTools/src/remotetoolConfig.c	(revision 36968)
+++ trunk/ippTools/src/remotetoolConfig.c	(revision 36981)
@@ -64,4 +64,10 @@
   ADD_OPT(S16, listcomponentArgs, "-limit",              "limit to number of runs to display", 0);
   ADD_OPT(Bool, listcomponentArgs, "-simple",            "simple print format", false);
+
+  // -dropcomponent
+  psMetadata *dropcomponentArgs = psMetadataAlloc();
+  ADD_OPT(S64, dropcomponentArgs, "-remote_id",         "run to update", 0);
+  ADD_OPT(S64, dropcomponentArgs, "-stage_id",          "stage_id to remote", 0);
+  
   // -updaterun
   psMetadata *updaterunArgs = psMetadataAlloc();
@@ -95,4 +101,5 @@
   PXOPT_ADD_MODE("-listrun",           "", REMOTETOOL_MODE_LISTRUN,        listrunArgs);
   PXOPT_ADD_MODE("-listcomponent",     "", REMOTETOOL_MODE_LISTCOMPONENT,  listcomponentArgs);
+  PXOPT_ADD_MODE("-dropcomponent",     "", REMOTETOOL_MODE_DROPCOMPONENT,  dropcomponentArgs);
   PXOPT_ADD_MODE("-updaterun",         "", REMOTETOOL_MODE_UPDATERUN,      updaterunArgs);
   PXOPT_ADD_MODE("-updatepoll",        "", REMOTETOOL_MODE_UPDATEPOLL,     updatepollArgs);
