diff --git a/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java b/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java
index f2bc4c2..c66fd1f 100644
--- a/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java
+++ b/core/src/main/java/org/apache/mina/transport/nio/AbstractNioSession.java
@@ -326,6 +326,7 @@
 
                         // we was flushing writes, now we to the close
                         channelClose();
+                        processSessionClosed();
                     } else {
                         // no more write event needed
                         selectorLoop.modifyRegistration(false, !isReadSuspended(), false, (SelectorListener) this,
diff --git a/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java b/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java
index fc13539..f3a0064 100644
--- a/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java
+++ b/core/src/test/java/org/apache/mina/transport/nio/NioTcpClientReleaseTest.java
@@ -80,4 +80,34 @@
             closedLatch.countDown();
         }
     }
+    
+    /**
+     * Test added for DIRMINA-999
+     */
+    @Test
+    public void checkSessionCloseEventIsSentClientSideWhenImmediateIsFalse() throws IOException, InterruptedException,
+            ExecutionException {
+
+        NioTcpServer server = new NioTcpServer();
+        server.bind(0);
+
+        NioTcpClient client = new NioTcpClient();
+        final CountDownLatch closeCounter = new CountDownLatch(1);
+        client.setIoHandler(new AbstractIoHandler() {
+
+            @Override
+            public void sessionOpened(IoSession session) {
+                session.close(false);
+            }
+
+            @Override
+            public void sessionClosed(IoSession session) {
+                closeCounter.countDown();
+            }
+            
+        });
+        client.connect(new InetSocketAddress(server.getServerSocketChannel().socket().getLocalPort()));
+        assertTrue(closeCounter.await(WAIT_TIME, TimeUnit.MILLISECONDS));
+    }
+    
 }
