diff --git a/core/trunk/core/class/ObjectControlerAbstract.php b/core/trunk/core/class/ObjectControlerAbstract.php
index 065c9c5495e197a65effd57ba75591b7e6579225..405b46750a4a1db1a4afa3be49d2d442928d00c3 100644
--- a/core/trunk/core/class/ObjectControlerAbstract.php
+++ b/core/trunk/core/class/ObjectControlerAbstract.php
@@ -184,7 +184,9 @@ abstract class ObjectControler
         $result = array();
         foreach ($object->getArray() as $key => $value) {
             if (!in_array($key,$computed_properties)) {
-                if (substr_compare($key, '_id', -3) == 0
+                if($key == self::$specific_id) {
+                    // do not update key
+                } elseif (substr_compare($key, '_id', -3) == 0
                     || substr_compare($key, '_number', -7) == 0) {
                     if (in_array($key, self::$foolish_ids)) {
                         $result[] = $key . "='" . $value . "'";