diff --git a/std/armour.c b/std/armour.c
index e0f4b8f..03546b0 100644
--- a/std/armour.c
+++ b/std/armour.c
@@ -48,6 +48,8 @@
 
 // Zum Ueberschreiben, damit es nicht buggt, wenn die Leute in ihren Objekten (wie
 // gewuenscht) ::reset() rufen.
-void reset() {
+void reset()
+{
+  envchk::reset();
 }
 
diff --git a/std/armour_container.c b/std/armour_container.c
index 7ea22d2..604741f 100644
--- a/std/armour_container.c
+++ b/std/armour_container.c
@@ -50,5 +50,6 @@
 
 void reset()  {
   items::reset();
+  envchk::reset();
 }
 
diff --git a/std/clothing.c b/std/clothing.c
index 8d25984..2486111 100644
--- a/std/clothing.c
+++ b/std/clothing.c
@@ -48,6 +48,7 @@
 // zum Ueberschreiben, damit es nicht buggt, wenn Leute (wie gewuenscht) in 
 // ihren Objekten ::reset() aufrufen.
 void reset() {
+  envchk::reset();
 }
 
 int IsClothing() {return 1;}
diff --git a/std/clothing_container.c b/std/clothing_container.c
index ec93b92..5ee5a94 100644
--- a/std/clothing_container.c
+++ b/std/clothing_container.c
@@ -48,6 +48,7 @@
 
 void reset()  {
   items::reset();
+  envchk::reset();
 }
 
 int IsClothing() {return 1;}
diff --git a/std/container.c b/std/container.c
index ff47d35..d3ff7df 100644
--- a/std/container.c
+++ b/std/container.c
@@ -55,5 +55,6 @@
 void reset()
 {
   items::reset();
+  envchk::reset();
 }
 
diff --git a/std/npc.c b/std/npc.c
index 5f4faf1..0ddd719 100644
--- a/std/npc.c
+++ b/std/npc.c
@@ -110,6 +110,7 @@
 void reset(){
   items::reset();
   combat::reset();
+  envchk::reset();
 }
 
 static int _set_level(int arg)
diff --git a/std/thing.c b/std/thing.c
index 908b6c1..eb197f3 100644
--- a/std/thing.c
+++ b/std/thing.c
@@ -41,5 +41,7 @@
 }
 
 // Damit man in ALLEN Standardobjekten ::reset aufrufen kann.
-void reset() {}
-
+void reset()
+{
+  envchk::reset();
+}
diff --git a/std/thing/envchk.c b/std/thing/envchk.c
index f6ce13b..3c63dff 100644
--- a/std/thing/envchk.c
+++ b/std/thing/envchk.c
@@ -13,6 +13,7 @@
 #include <moving.h>
 #define NEED_PROTOTYPES
 #include <thing/moving.h>
+#include <thing/properties.h>
 
 protected void check_for_environment(string cloner)
 {
@@ -29,8 +30,47 @@
   }
 }
 
-void create()
+protected void create()
 {
-	if( clonep() ) 
+  if( clonep() )
     call_out(#'check_for_environment, 3, object_name(previous_object()));
 }
+
+// Kein Envcheck fuer Auto-Objekte, dafuer entfernen diese sich im naechsten
+// Reset, sofern sie noch kein Environment haben.
+// BTW: Abschalten des Resets sorgt fuer kein Aufraeumen.
+public int SetAutoObject(int autostate)
+{
+  if (autostate)
+  {
+    Set("p_lib_autoobject", 1, F_VALUE);
+    Set("p_lib_autoobject", PROTECTED|NOSETMETHOD, F_MODE_AS);
+    remove_call_out(#'check_for_environment);
+    if (autostate > 1)
+      set_next_reset(autostate);
+    // else: Standardresetzeit
+  }
+  else
+  {
+    // (Re-)Enable envchk
+    Set("p_lib_autoobject", 0, F_VALUE);
+    Set("p_lib_autoobject", PROTECTED|NOSETMETHOD, F_MODE_AD);
+    if (clonep() && find_call_out(#'check_for_environment) == -1)
+      call_out(#'check_for_environment, 3, object_name(previous_object()));
+  }
+  return autostate;
+}
+
+void reset()
+{
+  // wenn kein env und Autoobject: zerstoeren
+  if (clonep() && !environment()
+      && Query("p_lib_autoobject", F_VALUE))
+  {
+    remove(1);
+    // hier wirklich erzwingen, um unter allen Umstaenden zu vermeiden, dass
+    // sich dauerhaft Clones ansammeln, die niemand mehr referenziert.
+    if (objectp(this_object()))
+      destruct(this_object());
+  }
+}
diff --git a/std/tray.c b/std/tray.c
index e5f05b3..51319c6 100644
--- a/std/tray.c
+++ b/std/tray.c
@@ -52,4 +52,5 @@
 void reset()
 {
   items::reset();
+  envchk::reset();
 }
diff --git a/std/weapon.c b/std/weapon.c
index c80c767..6ccc886 100644
--- a/std/weapon.c
+++ b/std/weapon.c
@@ -42,5 +42,7 @@
 }
 
 void reset()  // Man kann in ALLEN Standardobjekten ::reset aufrufen!
-{ }
+{
+  envchk::reset();
+}
 
