diff --git a/obj/shut.c b/obj/shut.c
index 8a9fba1..3023b92 100644
--- a/obj/shut.c
+++ b/obj/shut.c
@@ -314,10 +314,9 @@
 
 public void catch_tell( string str )
 {
-    string who, what;
-    object ob;
+    string what;
 
-    if ( sscanf( str, "%s teilt Dir mit: %s", who, what ) != 2 ||
+    if ( sscanf( str, "%~s teilt Dir mit: %s", what ) != 2 ||
          !this_player() )
         return;
     
diff --git a/secure/udp/htmlwho.c b/secure/udp/htmlwho.c
index 51a24b4..f8e5298 100644
--- a/secure/udp/htmlwho.c
+++ b/secure/udp/htmlwho.c
@@ -12,20 +12,17 @@
 
 string adjust(string str,int wid)
 {
-  int w2;
-
-  w2=wid/2;
-  wid=wid-w2;
-  return extract("                                                          ",0,wid-1)+str+
-    extract("                                                         ",0,w2-1);
+  string pattern = sprintf("%%|%ds", wid+sizeof(str));
+  return sprintf(pattern, str);
 }
 
-udp_htmlwho(data)
+void udp_htmlwho(mapping data)
 {
   int i,num;
-  string wholiste,tmp,tmp2;
+  string wholiste, tmp;
+  string* tmp2;
 
-  <object|string>** mdata="/obj/werliste"->QueryWhoListe(0,0,1);
+  <string|<object|string>* > * mdata="/obj/werliste"->QueryWhoListe(0,0,1);
 
   num=sizeof(mdata);
   for (i=num-1;i>=0;i--)
