### Eclipse Workspace Patch 1.0
#P scmbugg
Index: src/lib/product/Daemon/Integration.pm.in
===================================================================
RCS file: /projects/scmbug/cvsroot/system/src/lib/product/Daemon/Integration.pm.in,v
retrieving revision 1.32
diff -u -r1.32 Integration.pm.in
--- src/lib/product/Daemon/Integration.pm.in	11 Nov 2007 20:41:07 -0000	1.32
+++ src/lib/product/Daemon/Integration.pm.in	23 Dec 2007 10:55:51 -0000
@@ -289,15 +289,23 @@
             $request->add_result( 1, $ret_message );
 	}
     } elsif ( $request->{ type }->{ tag }->{ operation } eq $TAG_OPERATION_DELETE ) {
-	# Delete the tag
-	my $ret;
-	$ret = $self->bugtracker()->integration_delete_tag( $request->{ product_name },
-							    $request->{ type }->{ tag }->{ name } );
-	
-	if ( $ret == 1) {
-	    $ret_message = "Tag '" . $request->{ type }->{ tag }->{ name } . 
-		"' could not be deleted from product '" . $request->{ product_name } . "' because no product with this name exists.\n";
-	    $request->add_result( 1, $ret_message );
+	# Delete the tag if it's present
+	my $ret = $self->bugtracker()->integration_tag_exists( $request->{ product_name },
+                                                               $request->{ type }->{ tag }->{ name } );
+	if($ret == 0) {
+		$ret_message = "Tag '" . $request->{ type }->{ tag }->{ name } . 
+		    "' could not be deleted from product '" . $request->{ product_name } . "' because no tag with this name exists.\n";
+		$request->add_result( 1, $ret_message );
+	} elsif ($ret == 1){
+		$ret = $self->bugtracker()->integration_delete_tag( $request->{ product_name },
+								    $request->{ type }->{ tag }->{ name } );
+		if($ret != 0){
+			# Should never happen
+		}
+	} elsif ($ret == 2) {
+		$ret_message = "Tag '" . $request->{ type }->{ tag }->{ name } . 
+		    "' could not be deleted from product '" . $request->{ product_name } . "' because no product with this name exists.\n";
+		$request->add_result( 1, $ret_message );
 	}
     } elsif ( $request->{ type }->{ tag }->{ operation } eq $TAG_OPERATION_MOVE ) {
 	# Do nothing
