diff --git a/lib/OpenLayers/Control.js b/lib/OpenLayers/Control.js
index ce6ec13345..fb6c98ceb4 100644
--- a/lib/OpenLayers/Control.js
+++ b/lib/OpenLayers/Control.js
@@ -176,7 +176,9 @@ OpenLayers.Control = OpenLayers.Class({
if(this.eventListeners instanceof Object) {
this.events.on(this.eventListeners);
}
- this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
+ if (this.id == null) {
+ this.id = OpenLayers.Util.createUniqueID(this.CLASS_NAME + "_");
+ }
},
/**
diff --git a/tests/Control.html b/tests/Control.html
index 72814511ab..6bf6966258 100644
--- a/tests/Control.html
+++ b/tests/Control.html
@@ -3,12 +3,17 @@