diff --git a/secure/simul_efun/shadow.c b/secure/simul_efun/shadow.c
new file mode 100644
index 0000000..7608c73
--- /dev/null
+++ b/secure/simul_efun/shadow.c
@@ -0,0 +1,55 @@
+/* These sefuns are to provide a replacement for the efun query_shadowing()
+ * and the old semantics of the efun shadow().
+ * Feel free to add it to your mudlibs, if you have much code relying on that.
+ */
+
+#if ! __EFUN_DEFINED__(query_shadowing)
+
+#include <object_info.h>
+
+object query_shadowing(object ob)
+{
+    return efun::object_info(ob, OI_SHADOW_PREV);
+}
+
+private object _shadow(object ob, int flag)
+{
+    if(flag)
+    {
+        object shadower = efun::previous_object(1);
+        efun::set_this_object(shadower);
+
+        if (efun::shadow(ob))
+            return efun::object_info(shadower, OI_SHADOW_PREV);
+        else
+            return 0;
+    }
+    else
+        return efun::object_info(ob, OI_SHADOW_NEXT);
+}
+#else
+private object _shadow(object ob, int flag)
+{
+  set_this_object(previous_object(1));
+  return efun::shadow(ob, flag);
+}
+#endif
+
+
+public object shadow(object ob, int flag)
+{
+  object res = funcall(#'_shadow,ob, flag);
+  if (flag)
+    "/secure/shadowmaster"->RegisterShadow(previous_object());
+  return res;
+}
+
+private void _unshadow() {
+  set_this_object(previous_object(1));
+  efun::unshadow();
+}
+
+public void unshadow() {
+  funcall(#'_unshadow);
+  "/secure/shadowmaster"->UnregisterShadow(previous_object());
+}
