* @param write_fd  the file descriptor which should be used for writing (default -1 for no value)
  */
 IOImplementation::IOImplementation(int read_fd, int write_fd)
-: m_read_fd(read_fd)
-, m_write_fd(write_fd)
+: m_read_fd(-1)
+, m_write_fd(-1)
 , m_eof(false)
 , m_not_writable(false)
 , m_input_buffer()
 , m_marked_for_writing(false)
 {
     internal_io::g_io_list().add_item(this);
+    if (read_fd >= 0)
+    {
+        setReadFd( read_fd );
+    }
+    if (write_fd >= 0)
+    {
+        setWriteFd( write_fd );
+    }
 } // eo IOImplementation::IOImplementation