diff --git a/alib2std/src/extensions/iostream.cpp b/alib2std/src/extensions/iostream.cpp
index e47263d247d3ef60a65c941a226fbe32c141e3d6..2c45e69254c4578d41950865612429c8eb7365c4 100644
--- a/alib2std/src/extensions/iostream.cpp
+++ b/alib2std/src/extensions/iostream.cpp
@@ -3,16 +3,28 @@
  */
 
 #include "iostream.hpp"
+#include <bits/../iostream>
 
 namespace std {
 
 const int CERR_FD = 2;
 
- // used for alib special logging
-const int CALOG_FD = 4;
-ofdstream calog ( CALOG_FD, CERR_FD );
-
  // used for measurements output
 const int CMEASURE_FD = 5;
 ofdstream cmeasure ( CMEASURE_FD, CERR_FD );
+
+const int CLOG_FD = 4;
+fdaccessor clog_fdaccessor ( CLOG_FD, CERR_FD );
+fdstreambuf clog_fdstreambuf ( clog_fdaccessor.get_fd ( ) );
+
+RelinkIO::RelinkIO ( ) {
+	std::clog.rdbuf ( & clog_fdstreambuf );
+	std::clog.clear ( );
+}
+
+RelinkIO::~RelinkIO ( ) {
+	std::clog.flush ( );
+}
+
+RelinkIO relinkio;
 }
diff --git a/alib2std/src/extensions/iostream.hpp b/alib2std/src/extensions/iostream.hpp
index e8152327a21f49fcf56d5b828cf27e74c7b9195f..1f0dc060795d7066e5fe5dd3c373f788a0ed7f78 100644
--- a/alib2std/src/extensions/iostream.hpp
+++ b/alib2std/src/extensions/iostream.hpp
@@ -11,13 +11,21 @@ namespace std {
 
 extern const int CERR_FD;
 
- // used for alib special logging
-extern const int CALOG_FD;
-extern ofdstream calog;
-
  // used for measurements output
 extern const int CMEASURE_FD;
 extern ofdstream cmeasure;
+
+extern fdaccessor clog_fdaccessor;
+extern fdstreambuf clog_fdstreambuf;
+
+class RelinkIO {
+public:
+	RelinkIO ( );
+	~RelinkIO ( );
+};
+
+ // following the way of stdlibc++
+extern RelinkIO relinkio;
 }
 
 #endif /* IOSTREAM_HPP_ */