diff --git a/secure/simul_efun/simul_efun.c b/secure/simul_efun/simul_efun.c
index acb73db..d4a6428 100644
--- a/secure/simul_efun/simul_efun.c
+++ b/secure/simul_efun/simul_efun.c
@@ -839,25 +839,22 @@
     }
   }
   // Kein Aufruf von Funktionen in Objekten anderer Magier erlaubt.
-  foreach(string s: explode(str, "@@"))
+  if (stringp(str))
   {
-    if (sizeof(s) && _illegal_ps_call(s))
+    foreach(string s: explode(str, "@@"))
     {
-      set_this_object(previous_object());
-      raise_error("Illegale Benutzung von process_string(). Aufruf in "
-          "in fremder UID nicht erlaubt.\n");
+      if (sizeof(s) && _illegal_ps_call(s))
+      {
+        set_this_object(previous_object());
+        raise_error("Illegale Benutzung von process_string(). Aufruf in "
+            "in fremder UID nicht erlaubt.\n");
+      }
     }
   }
-
-  if ( closurep(str) ) {
+  else if ( closurep(str) ) {
       set_this_object( previous_object() );
       return funcall(str);
   }
-  else if (str==0)
-      return(str);
-  else if ( !stringp(str) ) {
-      return to_string(str);
-  }
 
   if ( !(flag = process_flag > time() - 60))                     
       process_flag=time();
