--- src/openvpn/mtcp.c
+++ src/openvpn/mtcp.c
@@ -625,11 +625,27 @@
              */
             if (touched && IS_SIG(&touched->context))
             {
+                int exit_after_close = 0;
+
+                if (touched->context.c2.link_socket->inetd == INETD_NOWAIT)
+                {
+                    exit_after_close = 1;
+                }
+
                 if (mi == touched)
                 {
                     mi = NULL;
                 }
                 multi_close_instance_on_signal(m, touched);
+
+                /*
+                 * If this socket results from an inetd-nowait - connection
+                 * it has to be the only one and we have to exit.
+                 */
+                if (exit_after_close)
+                {
+                    m->top.sig->signal_received = SIGTERM;
+                }
             }
         }
 
--- src/openvpn/options.c
+++ src/openvpn/options.c
@@ -2033,10 +2033,12 @@
         msg(M_USAGE, "--inetd nowait can only be used in TLS mode");
     }
 
+#if 0
     if (options->inetd == INETD_NOWAIT && dev != DEV_TYPE_TAP)
     {
         msg(M_USAGE, "--inetd nowait only makes sense in --dev tap mode");
     }
+#endif
 
 
     if (options->lladdr && dev != DEV_TYPE_TAP)
@@ -2275,10 +2277,12 @@
         {
             msg(M_USAGE, "--shaper cannot be used with --mode server");
         }
+#if 0
         if (options->inetd)
         {
             msg(M_USAGE, "--inetd cannot be used with --mode server");
         }
+#endif
         if (options->ipchange)
         {
             msg(M_USAGE, "--ipchange cannot be used with --mode server (use --client-connect instead)");
@@ -2894,10 +2898,12 @@
      * In forking TCP server mode, you don't need to ifconfig
      * the tap device (the assumption is that it will be bridged).
      */
+#if 0
     if (options->inetd == INETD_NOWAIT)
     {
         options->ifconfig_noexec = true;
     }
+#endif
 
 #ifdef _WIN32
     if ((dev == DEV_TYPE_TUN || dev == DEV_TYPE_TAP) && !options->route_delay_defined)
--- src/openvpn/socket.c
+++ src/openvpn/socket.c
@@ -1900,7 +1900,9 @@
     {
         ASSERT(accept_from);
         ASSERT(sock->info.proto == PROTO_TCP_SERVER);
+#if 0
         ASSERT(!sock->inetd);
+#endif
         sock->sd = accept_from->sd;
         /* inherit (possibly guessed) info AF from parent context */
         sock->info.af = accept_from->info.af;
