diff --git a/secure/simul_efun/simul_efun.c b/secure/simul_efun/simul_efun.c
index f4b69c0..99c9e49 100644
--- a/secure/simul_efun/simul_efun.c
+++ b/secure/simul_efun/simul_efun.c
@@ -1011,7 +1011,6 @@
   mixed save;
   mapping properties;
   int i;
-  closure cl;
 
   if (sizeof(name) < 1)
   {
@@ -1094,6 +1093,7 @@
 {
   if (objectp(ob))
     return funcall(bind_lambda(#'efun::configure_object,ob), ob, OC_HEART_BEAT, flag);
+  return 0;
 }
 
 // * Magierlevelgruppen ermitteln
@@ -1275,7 +1275,7 @@
 
 nomask varargs void call_out( varargs mixed *args )
 {
-    mixed tmp, *call_outs;
+    mixed *call_outs;
 
     // Bei >600 Callouts alle Objekte killen, die mehr als 30 Callouts laufen
     // haben.
@@ -1826,8 +1826,7 @@
 // erhoeht das Lichtlevel eines Objekts um i
 // result: das Lichtlevel innerhalb des Objekts
 {
-    object ob, *inv;
-    int lall, light, dark, tmp;
+    object ob;
 
     if (!(ob=previous_object())) return 0; // ohne das gehts nicht.
 
@@ -1898,9 +1897,8 @@
       int ob_nr = parts[i][<1]-'1';
       if (ob_nr<0 || ob_nr>=t) {
         set_this_object(previous_object());
-        raise_error(sprintf("replace_personal: using wrong object index %d\n",
-                    ob_nr));
-        return implode(parts, "");
+        raise_error(sprintf(
+              "replace_personal: using wrong object index %d\n", ob_nr));
       }
 
       // casus kann man schon hier entscheiden
