diff --git a/trunk/src/app/srs_app_listener.cpp b/trunk/src/app/srs_app_listener.cpp
old mode 100644
new mode 100755
index 73885bcb6..6818d48fc
--- a/trunk/src/app/srs_app_listener.cpp
+++ b/trunk/src/app/srs_app_listener.cpp
@@ -193,15 +193,10 @@ SrsTcpListener::SrsTcpListener(ISrsTcpHandler* h, string i, int p)
 
 SrsTcpListener::~SrsTcpListener()
 {
-    // close the stfd to trigger thread to interrupted.
-    srs_close_stfd(_stfd);
-
     pthread->stop();
     srs_freep(pthread);
     
-    // st does not close it sometimes, 
-    // close it manually.
-    close(_fd);
+    srs_close_stfd(_stfd);
 }
 
 int SrsTcpListener::fd()
diff --git a/trunk/src/core/srs_core.hpp b/trunk/src/core/srs_core.hpp
index 457dd11e1..d1d7f22a2 100644
--- a/trunk/src/core/srs_core.hpp
+++ b/trunk/src/core/srs_core.hpp
@@ -31,7 +31,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 // current release version
 #define VERSION_MAJOR       3
 #define VERSION_MINOR       0
-#define VERSION_REVISION    218
+#define VERSION_REVISION    219
 
 // generated by configure, only macros.
 #include <srs_auto_headers.hpp>