diff --git a/std/thing.c b/std/thing.c
index 6198675..908b6c1 100644
--- a/std/thing.c
+++ b/std/thing.c
@@ -23,13 +23,6 @@
 {
   seteuid(getuid());
   properties::create();
-  // Wenn das Objekt jetzt schon ein gueltiges P_CLONER hat, wurde create()
-  // zweimal gerufen. Dies ist ein Fehler und vermutlich ist das Objekt
-  // jetzt kaputt.
-  if (stringp(QueryProp(P_CLONER)))
-      catch(raise_error("create() wurde ein zweites Mal gerufen. Dieses "
-            "Objekt ist nun vermutlich kaputt.\n"); publish);
-
   light::create();
   commands::create();
   description::create();
diff --git a/std/thing/description.c b/std/thing/description.c
index afbb16e..b5db0d8 100644
--- a/std/thing/description.c
+++ b/std/thing/description.c
@@ -68,25 +68,36 @@
   // Aenderungen an dieser Prop sind tabu.
   Set( P_CLONE_TIME, NOSETMETHOD|SECURED, F_MODE_AS );
 
-  // Id des Cloners und des Besitzers kommen nach P_CLONER
-  if (objectp( tp=this_interactive()||this_player() ))
+  // Wenn das Objekt bereits ein P_CLONER hat, wurde create() zweimal gerufen.
+  // Dies ist ein Fehler und vermutlich ist das Objekt jetzt kaputt. In jedem
+  // Fall wird das alte P_CLONER nicht ueberschrieben.
+  if (Query(P_CLONER, F_MODE))
   {
-    tpid=geteuid(tp);
-    if (!(tpid=geteuid(tp))) tpid=getuid(tp);
+      catch(raise_error("create() wurde ein zweites Mal gerufen. Dieses "
+            "Objekt ist nun vermutlich kaputt.\n"); publish);
   }
   else
-    tpid="UNKNOWN";
-
-  if (previous_object())
   {
-    if (!(poid = geteuid(previous_object())))
-      poid = getuid(previous_object());
-  }
-  else
-    poid="UNKNOWN";
+    // Id des Cloners und des Besitzers kommen nach P_CLONER
+    if (objectp( tp=this_interactive()||this_player() ))
+    {
+      tpid=geteuid(tp);
+      if (!(tpid=geteuid(tp))) tpid=getuid(tp);
+    }
+    else
+      tpid="UNKNOWN";
 
-  Set( P_CLONER, (poid != tpid ? poid+":"+tpid: tpid) );
-  Set( P_CLONER, NOSETMETHOD|SECURED, F_MODE_AS );
+    if (previous_object())
+    {
+      if (!(poid = geteuid(previous_object())))
+        poid = getuid(previous_object());
+    }
+    else
+      poid="UNKNOWN";
+
+    Set( P_CLONER, (poid != tpid ? poid+":"+tpid: tpid) );
+    Set( P_CLONER, NOSETMETHOD|SECURED, F_MODE_AS );
+  }
 
   // Gibt es FPs ?
   explore = (mixed *)EPMASTER->QueryExplore();
