diff --git a/obj/schoki.c b/obj/schoki.c
new file mode 100644
index 0000000..cb936b5
--- /dev/null
+++ b/obj/schoki.c
@@ -0,0 +1,51 @@
+inherit "/std/thing" ;
+
+#include __PATH__(1)"defs.h"
+
+int cmd_essen();
+
+
+protected void create() {
+  if (!clonep()) {
+    set_next_reset(-1);
+    return;
+  }
+  ::create();
+
+  SetProp(P_SHORT, "Ein kleines Stueck Schokolade");
+  SetProp(P_LONG, BSLF(
+    "Das Stueck Schokolade ist nicht sehr gross, sieht aber sehr lecker "
+    "aus."));
+  SetProp(P_INFO, BSLF(
+    "Dieses kleine Schokoladenstueck ist essbar und macht dabei nichtmal "+
+    "satt. Allerdings heilt sie Dich auch nicht."));
+  SetProp(P_NAME, "Schokoladenstueck");
+
+  SetProp(P_GENDER, NEUTER);
+  SetProp(P_WEIGHT, 10);
+  SetProp(P_VALUE, 0);
+  SetProp(P_MATERIAL, ([MAT_CHOCOLATE:100]));
+  AddId(({"schoki", "schoko", "schokolade",
+          "schokoladenstueck", "schokostueck", "stueck"});
+
+  AddCmd("iss|ess|esse&@ID", #'cmd_essen,
+    "Was willst Du essen?|");
+}
+
+
+int cmd_essen() {
+  if (ENV()!=TP) {
+    tell_object(TP, BSLF(
+      "Dazu solltest Du das Schokoladenstueck schon dabeihaben."));
+    return 1;
+  }
+
+  tell_object(TP, BSLF(
+    "Du steckst die Schokolade in den Mund und laesst sie Dir auf der "
+    "Zunge foermlich zergehen. Lecker!"));
+  tell_room(ENV(TP), BSLF(
+    TPNC+" steckt sich ein Stueck Schokolade in den Mund."), ({TP}));
+  remove(1);
+  return 1;
+}
+
