diff --git a/TELNETasp_CNL113320.tpd b/TELNETasp_CNL113320.tpd
index 5a7feb67fefb87bd8002913096a5cd400b3f38e1..1e41ec03c1e83769d168de2bf1ce2afb4bda1ad0 100644
--- a/TELNETasp_CNL113320.tpd
+++ b/TELNETasp_CNL113320.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2014 Ericsson
+ Copyright (c) 2016 Ericsson
 
   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v1.0
@@ -10,25 +10,16 @@
 
    File:               TELNETasp_CNL113320.tpd
    Description:        tpd project file
-   Rev:                R8E
+   Rev:                R9A
    Prodnr:             CNL 113 320
-   Updated:            2014-09-05
-   Contact:            http://ttcn.ericsson.se
 
  -->
 <TITAN_Project_File_Information version="1.0">
   <ProjectName>TELNETasp_CNL113320</ProjectName>
-  <ReferencedProjects>
-    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
-  </ReferencedProjects>
   <Folders>
-    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
     <FolderResource projectRelativePath="src" relativeURI="src"/>
   </Folders>
   <Files>
-    <FileResource projectRelativePath="doc/TELNETasp_CNL113320_FS.pdf" relativeURI="doc/TELNETasp_CNL113320_FS.pdf"/>
-    <FileResource projectRelativePath="doc/TELNETasp_CNL113320_PRI.pdf" relativeURI="doc/TELNETasp_CNL113320_PRI.pdf"/>
-    <FileResource projectRelativePath="doc/TELNETasp_CNL113320_UG.pdf" relativeURI="doc/TELNETasp_CNL113320_UG.pdf"/>
     <FileResource projectRelativePath="src/TELNETasp_PT.cc" relativeURI="src/TELNETasp_PT.cc"/>
     <FileResource projectRelativePath="src/TELNETasp_PT.hh" relativeURI="src/TELNETasp_PT.hh"/>
     <FileResource projectRelativePath="src/TELNETasp_PortType.ttcn" relativeURI="src/TELNETasp_PortType.ttcn"/>
@@ -52,14 +43,6 @@
           <formalParameter>.*</formalParameter>
         </NamingCoventions>
       </ProjectProperties>
-      <FolderProperties>
-        <FolderResource>
-          <FolderPath>doc</FolderPath>
-          <FolderProperties>
-            <ExcludeFromBuild>true</ExcludeFromBuild>
-          </FolderProperties>
-        </FolderResource>
-      </FolderProperties>
     </Configuration>
   </Configurations>
 </TITAN_Project_File_Information>
diff --git a/demo/TELNETasp_echo.cfg b/demo/TELNETasp_echo.cfg
old mode 100755
new mode 100644
diff --git a/doc/155_17_CNL_113_320_Uen_FS.pdf b/doc/15517-CNL113320_EN_J_PDFV1R2.pdf
similarity index 100%
rename from doc/155_17_CNL_113_320_Uen_FS.pdf
rename to doc/15517-CNL113320_EN_J_PDFV1R2.pdf
diff --git a/doc/19817-CNL113320.doc b/doc/19817-CNL113320.doc
new file mode 100644
index 0000000000000000000000000000000000000000..e227c413602e995c432ed5c0221c7ffcf15c1c4e
Binary files /dev/null and b/doc/19817-CNL113320.doc differ
diff --git a/doc/198_17_CNL_113_320_Uen_UG.pdf b/doc/198_17_CNL_113_320_Uen_UG.pdf
deleted file mode 100644
index a15cf0845a4296a383732583e990d4a692ee3e82..0000000000000000000000000000000000000000
Binary files a/doc/198_17_CNL_113_320_Uen_UG.pdf and /dev/null differ
diff --git a/doc/TELNETasp_CNL113320_PRI.doc b/doc/TELNETasp_CNL113320_PRI.doc
new file mode 100644
index 0000000000000000000000000000000000000000..7794ff5daeeba91fd61dbb9cdbc91db9ea8bcfa0
Binary files /dev/null and b/doc/TELNETasp_CNL113320_PRI.doc differ
diff --git a/src/TELNETasp_PT.cc b/src/TELNETasp_PT.cc
index 071565adb91b30ae73f62bb4b7f6084d1538089e..0a3f1bc3e569e3db1c80b5b0355def0f2798d17f 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:                R8H
+//  Rev:                R9A
 //  Prodnr:             CNL 113 320
 //
 
@@ -584,13 +584,14 @@ set_asp_params();
 config_finished = true;
     suppressed = false;
 
-if(ctrl_portnum == 0)
-    TTCN_error("Missing mandatory parameter: CTRL_PORTNUM");
 if (!server_mode_def){
     TTCN_warning("Mode is not defined. Test Port will operate in client mode operation.");
     server_mode = false;
 }
 
+if((!server_mode) && (ctrl_portnum == 0))  // The portnum can be zero in server mode. The actual listen port is printed out in WARNING
+    TTCN_error("Missing mandatory parameter: CTRL_PORTNUM");
+
 struct sockaddr_in address;
 int enabled = 1;
 
@@ -634,9 +635,20 @@ if (server_mode){
     memset(&(address.sin_zero), '\0', 8);
      
     if ( bind(fd_server, (struct sockaddr*)&address, sizeof(address)) < 0 )
-        TTCN_error("Error bindig socket to port %d", ctrl_portnum);
+        TTCN_error("%s: Error bindig socket to port %d. Reason: %d %s",port_name ,ctrl_portnum,errno,strerror(errno));
     if (listen(fd_server,1) < 0 )
-        TTCN_error("Error listening on port %d", ctrl_portnum);
+        TTCN_error("%s: Error listening on port %d",port_name ,ctrl_portnum);
+    
+    if(ctrl_portnum==0){  // ephemeral port, get the used one
+      struct sockaddr_in sin;
+      socklen_t len = sizeof(sin);
+      if (getsockname(fd_server, (struct sockaddr *)&sin, &len) == -1){
+        TTCN_warning("%s : Can not get the listen port number errno:%d %s",port_name,errno,strerror(errno));
+      } else {
+        ctrl_portnum=ntohs(sin.sin_port);
+        TTCN_warning("%s : The TELNET listen port: %d",port_name,ctrl_portnum);
+      }
+    }
       
 //    FD_ZERO(&readfds);
 //    FD_SET(fd_server, &readfds);
@@ -1014,6 +1026,13 @@ void TELNETasp__PT::outgoing_send(const ASP__TelnetPortParameters& send_par)
     asp_params = new ASP__TelnetPortParameters(send_par);
 }
 
+void TELNETasp__PT::outgoing_send(const ASP__Get__portnum& /*send_par*/)
+{
+  ASP__Portnum msg;
+  msg.local__port__num()=ctrl_portnum;
+  incoming_message(msg);
+}
+
 void TELNETasp__PT::outgoing_send(const ASP__TelnetDynamicConfig& send_par)
 {
     switch(send_par.get_selection()) {
diff --git a/src/TELNETasp_PT.hh b/src/TELNETasp_PT.hh
index aae7a69d8de9564c767c42197e0d263b2481396b..e37e542d020852b7dc9c541e5c491b0083fb45df 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:                R8H
+//  Rev:                R9A
 //  Prodnr:             CNL 113 320
 //
 
@@ -156,8 +156,8 @@ protected:
 	void outgoing_send(const ASP__TelnetPortParameters& send_par);
 	void outgoing_send(const ASP__TelnetDynamicConfig& send_par);
 	void outgoing_send(const ASP__TelnetConnection& send_par);
-        void outgoing_send(const ASP__TelnetClose& send_par);
-
+  void outgoing_send(const ASP__TelnetClose& send_par);
+  void outgoing_send(const ASP__Get__portnum&);
 	void	InitStrPar(char *&par, const char *name, const char *val);
 	int 	ProcessCmd(unsigned char * buf, int buflen);
         int 	ProcessNoCmd(unsigned char * buf, int buflen);
diff --git a/src/TELNETasp_PortType.ttcn b/src/TELNETasp_PortType.ttcn
index eeb7e25b132e20c72f7d47143b2fa95c6ee568d0..188de07fbb9422eaeccc21acb37130dcd6fc52a8 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:                R8H
+//  Rev:                R9A
 //  Prodnr:             CNL 113 320
 //
 
@@ -86,14 +86,20 @@ module TELNETasp_PortType
 
  type record ASP_TelnetClose {}
  
- type port TELNETasp_PT message
+ type record ASP_Get_portnum {}  // Querries the local port number
+ type record ASP_Portnum{
+   integer    local_port_num  // The listening port number.
+ }
+type port TELNETasp_PT message
 	{
 	 inout	charstring;
 	 in	integer;
+         in     ASP_Portnum;
 	 out	ASP_TelnetPortParameters,
 		ASP_TelnetDynamicConfig,
 		ASP_TelnetConnection,
-                ASP_TelnetClose;
+                ASP_TelnetClose,
+                ASP_Get_portnum;
 	}
 
 }