diff --git a/obj/tools/teller/t_base.c b/obj/tools/teller/t_base.c
index 9673b2c..ce623b3 100644
--- a/obj/tools/teller/t_base.c
+++ b/obj/tools/teller/t_base.c
@@ -262,12 +262,11 @@
 {
 	if( sizeof(stack) )
 		return stack[0];
+  return 0;
 }
 
 static varargs int becomes_obj( mixed argv)
 {
-	object ob;
-
 	if( !pointerp(argv) ) // default ist der stack !
 		argv = stack;
 	if( !sizeof(argv) )
@@ -323,7 +322,7 @@
 static mixed DumpObj( mixed ob )
 {
   string ans;
-  int i,j;
+  int i;
 
   if( intp(ob) )
     return ""+ob;
diff --git a/obj/tools/teller/t_cmds.c b/obj/tools/teller/t_cmds.c
index caf82eb..a5ed35a 100644
--- a/obj/tools/teller/t_cmds.c
+++ b/obj/tools/teller/t_cmds.c
@@ -163,7 +163,7 @@
 
 static string IpName( object obj )
 {
-	string ip_name, ip_num, nm;
+	string ip_name, nm;
 
 	if( obj->Notlogged() )
 	{
@@ -201,12 +201,12 @@
 static scan_obj( object player, object obj )
 {
 	string title, level, gender, room, testpl,
-		weapon, armour, quest, stat_str, *arr;
+		weapon, armour, stat_str, *arr;
 	int i,ac;
 	object weaponobj, *list;
   object** enemies;
   object* gegner;
-	mixed *hands, *quests, *stats;
+	mixed *hands, *stats;
 
 	// 1.Zeile : Name Titel - Rasse - [ Wizlevel ]
 	title = obj->QueryProp(P_TITLE);
@@ -417,7 +417,6 @@
 	
 static int cmd_memory()
 {
-  int i;
   if( !sizeof(memory) )
     return memo( "Keine Variablen definiert" );
 
@@ -631,7 +630,6 @@
 	object *inv;
 	string errmsg;
 	string *file;
-	object *items;
 	int i;
 
 	if( !becomes_obj() )
@@ -810,9 +808,6 @@
 static int cmd_callouts_bang()
 {
 	mixed *calls;
-	object obj;
-	string name;
-	int i,j;
 
 	calls = call_out_info();
 	if( !pointerp(calls) || !sizeof(calls) )
@@ -847,9 +842,7 @@
 static int cmd_callouts()
 {
 	mixed *calls;
-	object obj;
 	string str;
-	int i,j;
 
 	if( !stringp(top()) )
 		return error( "TOS ist kein String" );
