diff --git a/std/thing.c b/std/thing.c
index 908b6c1..6198675 100644
--- a/std/thing.c
+++ b/std/thing.c
@@ -23,6 +23,13 @@
 {
   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 b5db0d8..afbb16e 100644
--- a/std/thing/description.c
+++ b/std/thing/description.c
@@ -68,36 +68,25 @@
   // Aenderungen an dieser Prop sind tabu.
   Set( P_CLONE_TIME, NOSETMETHOD|SECURED, F_MODE_AS );
 
-  // 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))
+  // Id des Cloners und des Besitzers kommen nach P_CLONER
+  if (objectp( tp=this_interactive()||this_player() ))
   {
-      catch(raise_error("create() wurde ein zweites Mal gerufen. Dieses "
-            "Objekt ist nun vermutlich kaputt.\n"); publish);
+    tpid=geteuid(tp);
+    if (!(tpid=geteuid(tp))) tpid=getuid(tp);
   }
   else
+    tpid="UNKNOWN";
+
+  if (previous_object())
   {
-    // 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";
-
-    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 );
+    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();
