diff --git a/std/inpc/eval.c b/std/inpc/eval.c
index 24e1337..a8fbe80 100644
--- a/std/inpc/eval.c
+++ b/std/inpc/eval.c
@@ -100,7 +100,7 @@
 
 varargs object *minimize_prop_filt(object *here, mixed prop) {
   object *obs,ob;
-  int i,mhp,hp,sz;
+  int i,mhp,hp;
   
   obs=0;
   if (!pointerp(here))
@@ -125,7 +125,7 @@
 
 varargs object *maximize_prop_filt(object *here, mixed prop) {
   object *obs,ob;
-  int i,mwc,wc,sz;
+  int i,mwc,wc;
   
   obs=0;
   if (!pointerp(here))
diff --git a/std/inpc/select.c b/std/inpc/select.c
index 1fc0163..ada4ccb 100644
--- a/std/inpc/select.c
+++ b/std/inpc/select.c
@@ -45,7 +45,6 @@
         ctime()+"select::scan_objects(). Rest "+to_string(cost)+
         ", i="+member(src, ob)+", Size "+to_string(sizeof(src))+".\n");
       return res;
-      break;
     }
     if (!objectp(ob))
       continue;
@@ -111,7 +110,6 @@
         "Break in select::find_best_weapon(). Rest-Ticks "+to_string(cost)+
         ", i = "+to_string(i)+", Size "+to_string(sizeof(res))+".\n");
       return bob; // zurueckgeben, was bisher drinsteht.
-      break;
     } 
   }
   return bob;
@@ -217,7 +215,6 @@
 	to_string(cost)+", i="+member(diff, di)+", Size "+
 	to_string(sizeof(diff))+".\n");
       return 1; // zurueckgeben, was bisher drinsteht.
-      break;
     }
   }
   diff=na-oa;
@@ -235,7 +232,6 @@
 	 to_string(cost)+", i="+member(diff, di)+", Size "+
 	 to_string(sizeof(diff))+".\n");
       return 1; // zurueckgeben, was bisher drinsteht.
-      break;
     }
   }
   return 1;
diff --git a/std/inpc/walking.c b/std/inpc/walking.c
index 1fe19a4..eef8977 100644
--- a/std/inpc/walking.c
+++ b/std/inpc/walking.c
@@ -117,13 +117,17 @@
 }
 
 int walk_route() {
+  return 0;
 }
 
 int walk_to() {
+  return 0;
 }
 
 int walk_follow() {
+  return 0;
 }
 
 int walk_flee() {
+  return 0;
 }
