diff --git a/secure/login.c b/secure/login.c
index d51402a..2da60cc 100644
--- a/secure/login.c
+++ b/secure/login.c
@@ -177,7 +177,7 @@
     set_next_reset(300); // Timeout fuer Loginverfahren
     loginname = "logon";
     newbie=0;
-    realip="";
+    realip=0;
 
     SendTelopts();
     // In theory, we should not send anything if SendTelops() offers
@@ -264,7 +264,8 @@
     if (!res)
     {
       // check connection from Tor exit node
-      string eff_ip = (realip!="" ? realip : query_ip_number(this_object()));
+      string eff_ip = (sizeof(realip) ? realip
+                                      : query_ip_number(this_object()));
       if ("/p/daemon/dnslookup"->check_tor(eff_ip, query_mud_port())
           || "/p/daemon/dnslookup"->check_dnsbl(eff_ip))
         res = 
@@ -997,7 +998,6 @@
     creation_date = -1;
     catch( load_object( "/secure/merlin");publish );
     loginfails = 0;
-    realip="";
     if (clonep())
       set_next_reset(900);
     else
@@ -1149,9 +1149,9 @@
     return ob;
 }
 
-string query_realip()
+public string query_realip()
 {
-  return realip ? realip : "";
+  return realip ? realip : 0;
 }
 
 int query_invis()
diff --git a/secure/simul_efun/query_ip_name.c b/secure/simul_efun/query_ip_name.c
index 4ad213e..e489a29 100644
--- a/secure/simul_efun/query_ip_name.c
+++ b/secure/simul_efun/query_ip_name.c
@@ -37,7 +37,7 @@
   if(objectp(ob) && interactive(ob))
   {
     string realip = ob->query_realip();
-    if (sizeof(ob->query_realip()))
+    if (sizeof(realip))
     {
       return realip;
     }
diff --git a/secure/simul_efun/spare/query_ip_name.c b/secure/simul_efun/spare/query_ip_name.c
index 4ad213e..e489a29 100644
--- a/secure/simul_efun/spare/query_ip_name.c
+++ b/secure/simul_efun/spare/query_ip_name.c
@@ -37,7 +37,7 @@
   if(objectp(ob) && interactive(ob))
   {
     string realip = ob->query_realip();
-    if (sizeof(ob->query_realip()))
+    if (sizeof(realip))
     {
       return realip;
     }
diff --git a/std/player/base.c b/std/player/base.c
index cc172c0..63cdfe0 100644
--- a/std/player/base.c
+++ b/std/player/base.c
@@ -85,7 +85,7 @@
 
 private nosave mapping autoload_rest;
 private nosave string  *autoload_error;
-private nosave string realip; 
+private nosave string realip;
 
 // HB-Zaehler. Wenn 0 erreicht wird, wird  ein Telnet TM Paket als Keep-Alive
 // an den Client gesendet und der Counter wieder auf hochgesetzt. 
@@ -259,8 +259,6 @@
   Set(P_TELNET_CHARSET, PROTECTED|SAVE, F_MODE_AS);
 
   AddId("Interactive");
-
-  realip="";
 }
 
 // ACHTUNG: Falls hier mal sonst noch weitere Resets geerbt werden, muss das
@@ -4509,17 +4507,19 @@
   return Set(P_FAO,arg);
 }
 
-nomask void set_realip(string str)
+nomask public string set_realip(string str)
 {
-  if(previous_object() && strstr(object_name(previous_object()),"/secure")==0)
+  if(previous_object()
+     && strstr(object_name(previous_object()),"/secure")==0)
   {
     realip=str;
   }
+  return realip;
 }
 
-nomask string query_realip()
+nomask public string query_realip()
 {
-  return realip ? realip : "";
+  return realip ? realip : 0;
 }
 
 mixed _query_netdead_env() {
