diff --git a/std/thing/commands.c b/std/thing/commands.c
index 157fe74..98934eb 100644
--- a/std/thing/commands.c
+++ b/std/thing/commands.c
@@ -608,8 +608,7 @@
   while(nindex--)
    if(!strstr(query_verb(),keys[nindex]) &&
       member((flag=added_cmds[keys[nindex], CMDIDX_FLAG]),1)>=0) {
-    int i,ret;
-    i=sizeof(flag);
+    int i = sizeof(flag);
     // Reihenfolge nicht aendern !
     while(i--)
       if(flag[i]==1) {
diff --git a/std/thing/description.c b/std/thing/description.c
index b2326da..db238d2 100644
--- a/std/thing/description.c
+++ b/std/thing/description.c
@@ -275,7 +275,6 @@
 // zusamengebaut werden, dazu muss ich das leerzeichen aber erstmal
 // abschneiden und so weiter ...
 private string depointer_adj( <string|string*>* adj, int casus, int demon ) {
-  string msg;
   int start;
   string res,a;
 	adj = map( adj, #'DeclAdj, casus, demon );
@@ -498,7 +497,6 @@
 // Detail(s) hinzufuegen
 public void AddDetail(string|string* keys, string|string*|mapping|closure descr)
 {
-    int i;
     mapping details;
 
     details = Query(P_DETAILS, F_VALUE);
diff --git a/std/thing/language.c b/std/thing/language.c
index 4b23c8a..e0e3b3d 100644
--- a/std/thing/language.c
+++ b/std/thing/language.c
@@ -50,7 +50,7 @@
 // Artikel vorschlagen: gibt es noch mehr Objekte im inv?
 protected varargs int SuggestArticle(string id)
 {
-  object ob,*obs;
+  object ob;
 
   // Raum oder Master: Bestimmt.
   if (!environment()) return 1;
@@ -110,8 +110,6 @@
 // Pronomen bestimmen nach KNG
 public varargs string QueryPronoun(int casus)
 {
-  int gender;
-
   // Plural ist immer einfach ...
   if (QueryProp(P_PLURAL)) 
   {
diff --git a/std/thing/light.c b/std/thing/light.c
index 465eea7..99d2e17 100644
--- a/std/thing/light.c
+++ b/std/thing/light.c
@@ -85,5 +85,4 @@
     default:
       return (lighttype & my_light_type);
   }
-  return 0;
 }
diff --git a/std/thing/util.c b/std/thing/util.c
index 0a0d1ff..4e58576 100644
--- a/std/thing/util.c
+++ b/std/thing/util.c
@@ -96,7 +96,7 @@
 // Lacht nicht ueber den Namen!!! -Boing
 // Nein, ueber den Namen lache ich nicht ... -Paracelsus
 static void DumpKeyValPair(mapping x, mixed key, int size)
-{ int j, vc;
+{ int j;
 
   PrettyDump(key);
   write(" : ");
