diff --git a/doc/15517-CNL113320_EN_J_PDFV1R5.pdf b/doc/155_17_CNL_113_320_Uen_FS.pdf
similarity index 99%
rename from doc/15517-CNL113320_EN_J_PDFV1R5.pdf
rename to doc/155_17_CNL_113_320_Uen_FS.pdf
index 49c14d178c294df8e192d2313da1f0d9424f28d4..560a85ee7911a71b4e3ba8a98ad91f026bf697b9 100644
Binary files a/doc/15517-CNL113320_EN_J_PDFV1R5.pdf and b/doc/155_17_CNL_113_320_Uen_FS.pdf differ
diff --git a/doc/19817-CNL113320_EN_L_PDFV1R5.pdf b/doc/198_17_CNL_113_320_Uen_UG.pdf
similarity index 99%
rename from doc/19817-CNL113320_EN_L_PDFV1R5.pdf
rename to doc/198_17_CNL_113_320_Uen_UG.pdf
index 31bd252289cd77cd6db96582f5acc60d4368a02d..a15cf0845a4296a383732583e990d4a692ee3e82 100644
Binary files a/doc/19817-CNL113320_EN_L_PDFV1R5.pdf and b/doc/198_17_CNL_113_320_Uen_UG.pdf differ
diff --git a/src/TELNETasp_PT.cc b/src/TELNETasp_PT.cc
index 7a5bf0f140ad928f8efaf9a9b5ccd47a8853006b..071565adb91b30ae73f62bb4b7f6084d1538089e 100644
--- a/src/TELNETasp_PT.cc
+++ b/src/TELNETasp_PT.cc
@@ -21,7 +21,7 @@
 //
 //  File:               TELNETasp_PT.cc
 //  Description:        TELNET testport source file
-//  Rev:                R8E
+//  Rev:                R8H
 //  Prodnr:             CNL 113 320
 //
 
@@ -396,10 +396,24 @@ if (server_mode){
 
         if (ctrl_login_skipped){
            if(ctrl_server_attach_prompt){
-             if ( ::send(nvtsock, "\r\n", 2 , 0) < 0)
+             if ( ::send(nvtsock, "\r\n", 2 , 0) < 0){
+               if(ctrl_server_failsafe_sending){
+                 TTCN_warning("TCP send failed");
+                 goto conn_setup_failed;
+               }
+               else{
                  TTCN_error("TCP send failed");
-             if ( ::send(nvtsock, ctrl_server_prompt, strlen(ctrl_server_prompt), 0) < 0)
+               }
+             }
+             if ( ::send(nvtsock, ctrl_server_prompt, strlen(ctrl_server_prompt), 0) < 0){
+               if(ctrl_server_failsafe_sending){
+                 TTCN_warning("TCP send failed");
+                 goto conn_setup_failed;
+               }
+               else{
                  TTCN_error("TCP send failed");
+               }
+              }
             }
             incoming_message(INTEGER(1));
             isClientLoggedIn = true;
@@ -409,22 +423,45 @@ if (server_mode){
             return;
         }
         //starting login procedure
-        if ( ::send(nvtsock,"\r\n", 2,0 ) < 0)
-            TTCN_error("TCP send failed");
+        if ( ::send(nvtsock,"\r\n", 2,0 ) < 0){
+         if(ctrl_server_failsafe_sending){
+           TTCN_warning("TCP send failed");
+           goto conn_setup_failed;
+         }
+         else{
+           TTCN_error("TCP send failed");
+         }
+        }
+
+
+        if ( ::send(nvtsock,ctrl_loginname_prompt, strlen(ctrl_loginname_prompt),0 ) < 0){
+         if(ctrl_server_failsafe_sending){
+           TTCN_warning("TCP send failed");
+           goto conn_setup_failed;
+         }
+         else{
+           TTCN_error("TCP send failed");
+         }
+        }
+        return;
+conn_setup_failed:
+        // Something went wrong during the connection set up
+        // go back listening and close the socket
+        close_connection(nvtsock);
+        Handler_Add_Fd_Read(fd_server);
+        return;
+
 
-        if ( ::send(nvtsock,ctrl_loginname_prompt, strlen(ctrl_loginname_prompt),0 ) < 0)
-            TTCN_error("TCP send failed");
     } else if (fd==nvtsock){
         recv_msg_from_client(nvtsock);
     } else {TTCN_error("Invalid file descriptor to read %d",fd);}
 } else {
 
-/*    int res=RecvClrMsg(); // workaround for a strange issue
+    int res=RecvClrMsg(); // workaround for a strange issue
     if(res == -2){
-      log_debug("It's kind of fun to do impossible. Enjoy it now.");
-      return;
-    }*/
-    if (RecvClrMsg() < 0) {
+      return; // ignore OOB data
+    }
+    if (res < 0) {
 	if(ctrl_detect_server_disconnected) return;
 	else TTCN_error ("*** Socket error or the server closed the connection "
 	    "(in Event_Handler).");
@@ -627,19 +664,31 @@ if (server_mode){
     if (nvtsock < 0) TTCN_error("Socket creation failed");
     log_debug( "%s: Client socket created: %d", port_name, nvtsock);
 
-    if((he = gethostbyname(ctrl_hostname))==NULL)
-	TTCN_error("Unable to resolve hostname: %s", ctrl_hostname);
-
     if(setsockopt(nvtsock, SOL_SOCKET, SO_REUSEADDR, (const char *)&enabled,
-	sizeof(int)) == -1)
-	TTCN_error("setsockopt(SO_REUSEADDR) failed");
+    sizeof(int)) == -1)
+      TTCN_error("setsockopt(SO_REUSEADDR) failed");
+    log_debug( "%s: SO_REUSEADDR set on: %d", port_name, nvtsock);
 
-    memcpy(&address.sin_addr, he->h_addr_list[0], he->h_length);
+    memset(&(address), 0, sizeof(address));
+    if(!inet_aton(ctrl_hostname,&address.sin_addr)){
+      log_debug( "%s: Try to resolv %s", port_name,ctrl_hostname );
+      struct hostent	*he;
+      if((he = gethostbyname(ctrl_hostname))==NULL)
+        TTCN_error("Unable to resolve hostname: %s", ctrl_hostname);
+      log_debug( "%s: Name resolved", port_name);
+
+
+      memcpy(&address.sin_addr, he->h_addr_list[0], he->h_length);
+    } else {
+      log_debug( "%s: IPv4 literal conversion done", port_name);
+      
+    }
     address.sin_family = AF_INET;
     address.sin_port = htons(ctrl_portnum);
 
     // workaround for WinSock bug (For Cygwin)
     int retries = 0;
+    log_debug( "%s: Try to connect", port_name);
     while (connect(nvtsock, (struct sockaddr*)&address, sizeof(address))<0){
       
       	if (errno != EADDRINUSE) {
@@ -701,15 +750,15 @@ struct pollfd poll_fds;
 	    int poll_res=poll(&poll_fds,1,map_poll_timeout);
       if(poll_res==1){
         int res=RecvClrMsg();
-/*        if(res==-2){ // Workaround for a strange issue
+        if(res==-2){ // ignore OOB data
           continue;
-        } else {*/
+        } else {
           if(res < 0) {
 	            if(ctrl_detect_server_disconnected) return;
 	            else TTCN_error("*** Socket error or the server closed"
 		        " the connection.");
 	        }
-/*        }*/
+        }
       } else {
 	      if(ctrl_detect_server_disconnected) {
 	          log_debug( "%s: Connection timeout during map."
@@ -1338,12 +1387,13 @@ int TELNETasp__PT::RecvClrMsg()
 {
     unsigned char inbuf[BUFFER_SIZE];
     errno=0;
-    int end_len = BUFFER_SIZE, len = recv(nvtsock, inbuf , end_len, 0);
+    int end_len = BUFFER_SIZE, len = recv(nvtsock, inbuf , end_len, MSG_DONTWAIT);
     
-/*    if(len<0 && errno == EAGAIN){  // Workaround for a strange issue. 
+    if(len<0 && errno == EAGAIN){  // ignore OOB data. 
+      recv(nvtsock, inbuf , end_len, MSG_DONTWAIT|MSG_OOB);
       return -2;
     }
-*/    
+    
     if(len>0){
       log_debug( "%s: ********************** NEW MESSAGE"
 	    " RECEIVED **********************", port_name);
@@ -1668,12 +1718,25 @@ void TELNETasp__PT::recv_msg_from_client(int &fd){
                 }
                 ttcn_buf.set_pos(ttcn_buf.get_len());
                 
-                if (::send(fd, "\r\n", 2, 0) < 0 )
-                  TTCN_error("TCP send failed");
-                
-                if (::send(fd, ctrl_password_prompt, strlen(ctrl_password_prompt), 0) < 0 )
-                  TTCN_error("TCP send failed");
-
+                if (::send(fd, "\r\n", 2, 0) < 0 ){
+                       if(ctrl_server_failsafe_sending){
+                         TTCN_warning("TCP send failed");
+                         goto conn_setup_client_disc;
+                       }
+                       else{
+                         TTCN_error("TCP send failed");
+                       }
+               }
+  
+                if (::send(fd, ctrl_password_prompt, strlen(ctrl_password_prompt), 0) < 0 ){
+                  if(ctrl_server_failsafe_sending){
+                    TTCN_warning("TCP send failed");
+                    goto conn_setup_client_disc;
+                  }
+                  else{
+                    TTCN_error("TCP send failed");
+                  }
+                }
                 pass_prompt_send = true;
               } else if (delimiter_came && pass_prompt_send){
                   int pos = ttcn_buf.get_pos();
@@ -1702,13 +1765,28 @@ void TELNETasp__PT::recv_msg_from_client(int &fd){
                   ttcn_buf.clear();
 
                   const char *welcome = "Welcome\r\n";
-                  if (::send(fd, welcome, strlen(welcome), 0) < 0)
-                    TTCN_error("TCP send failed");
-                  if (::send(fd, ctrl_server_prompt, strlen(ctrl_server_prompt),0) < 0)
-                    TTCN_error("TCP send failed");
-              }              
+                  if (::send(fd, welcome, strlen(welcome), 0) < 0){
+                    if(ctrl_server_failsafe_sending){
+                      TTCN_warning("TCP send failed");
+                      goto conn_setup_client_disc;
+                    }
+                    else{
+                      TTCN_error("TCP send failed");
+                    }
+                  }
+                  if (::send(fd, ctrl_server_prompt, strlen(ctrl_server_prompt),0) < 0){
+                    if(ctrl_server_failsafe_sending){
+                      TTCN_warning("TCP send failed");
+                      goto conn_setup_client_disc;
+                    }
+                    else{
+                      TTCN_error("TCP send failed");
+                    }
+                  }
+              }
               
               break;
+              
             }
             
             
@@ -1744,6 +1822,13 @@ void TELNETasp__PT::recv_msg_from_client(int &fd){
             };
   }
   }
+return;
+conn_setup_client_disc:
+        // Something went wrong during the connection set up
+        // go back listening and close the socket
+        close_connection(fd);
+        Handler_Add_Fd_Read(fd_server);
+        return;
 
 }
 
diff --git a/src/TELNETasp_PT.hh b/src/TELNETasp_PT.hh
index 80ac559e3a4769dc6b4ddfc15295f724121730b3..aae7a69d8de9564c767c42197e0d263b2481396b 100644
--- a/src/TELNETasp_PT.hh
+++ b/src/TELNETasp_PT.hh
@@ -21,7 +21,7 @@
 //
 //  File:               TELNETasp_PT.hh
 //  Description:        TELNET testport header file
-//  Rev:                R8E
+//  Rev:                R8H
 //  Prodnr:             CNL 113 320
 //
 
diff --git a/src/TELNETasp_PortType.ttcn b/src/TELNETasp_PortType.ttcn
index 7b8a820a4faae232c7e8bd2c8ec430f0c3119c13..eeb7e25b132e20c72f7d47143b2fa95c6ee568d0 100644
--- a/src/TELNETasp_PortType.ttcn
+++ b/src/TELNETasp_PortType.ttcn
@@ -21,7 +21,7 @@
 //
 //  File:               TELNETasp_PortType.ttcn
 //  Description:        TELNET testport port definition file
-//  Rev:                R8E
+//  Rev:                R8H
 //  Prodnr:             CNL 113 320
 //