diff --git a/webconsole/src/main/resources/res/ui/bundles.js b/webconsole/src/main/resources/res/ui/bundles.js
index 0bebc67..41ee4ee 100644
--- a/webconsole/src/main/resources/res/ui/bundles.js
+++ b/webconsole/src/main/resources/res/ui/bundles.js
@@ -139,7 +139,7 @@
 
 function hideDetails( id ) {
 	$("#img" + id).each(function() {
-		$("#bundleInlineDetails").remove();
+		$("#pluginInlineDetails").remove();
         this.setAttribute("src", appRoot + "/res/imgs/arrow_right.png");
         this.setAttribute("onClick", "showDetails('" + id + "')");
         this.setAttribute("title", "Details");
@@ -149,7 +149,8 @@
 
 function renderDetails( data ) {
 	data = data.data[0];
-	$("#entry" + data.id + " > td").eq(1).append("<div id='bundleInlineDetails'/>");
+	$("#pluginInlineDetails").remove();
+	$("#entry" + data.id + " > td").eq(1).append("<div id='pluginInlineDetails'/>");
 	$("#img" + data.id).each(function() {
 		if ( drawDetails ) {
             this.setAttribute("src", appRoot + "/res/imgs/arrow_left.png");
@@ -165,7 +166,7 @@
             this.setAttribute("alt", "Hide Details");
 		}
 	});
-	$("#bundleInlineDetails").append("<table border='0'><tbody></tbody></table>");
+	$("#pluginInlineDetails").append("<table border='0'><tbody></tbody></table>");
     var details = data.props;
     for (var idx in details) {
         var prop = details[idx];
@@ -198,7 +199,7 @@
         	txt = txt + "\u00a0";
         }
         txt = txt + "</td></tr>";
-        $("#bundleInlineDetails > table > tbody").append(txt);
+        $("#pluginInlineDetails > table > tbody").append(txt);
 	}
 }
 
diff --git a/webconsole/src/main/resources/res/ui/components.js b/webconsole/src/main/resources/res/ui/components.js
index 65efc81..6631cd3 100644
--- a/webconsole/src/main/resources/res/ui/components.js
+++ b/webconsole/src/main/resources/res/ui/components.js
@@ -151,6 +151,7 @@
 
 function renderDetails( data ) {
 	data = data.data[0];
+	$("#pluginInlineDetails").remove();
 	$("#entry" + data.id + " > td").eq(1).append("<div id='pluginInlineDetails'/>");
 	$("#img" + data.id).each(function() {
 		if ( drawDetails ) {
