Hi Akim. I see what you're trying to do : sync up to the filter, but not beyond, would be a simple solution. However boost::iostreams::flush() will always flush everything, up to the final device. For the demonstration, if you use this dummy_sink : class dummy_sink { public: typedef char char_type; struct category : public boost::iostreams::sink_tag, public boost::iostreams::flushable_tag {}; std::streamsize write(const char* s, std::streamsize n) { std::cout << "{" << std::string(s, s + n) << "}"; return n; } bool flush() { std::cout << " FLUSH "; std::cout.flush(); return true; } }; With this example : { bos_ << " [label = \""; enable_(); bos_ << "bla\\abla" << 1 << 2 << 3 << "blabla"; disable_(); bos_ << "\", shape = box"; } Then the output looks like: { [label = "} FLUSH {bla\\abla123blabla} FLUSH {", shape = box} FLUSH FLUSH FLUSH FLUSH FLUSH FLUSH FLUSH -- View this message in context: http://boost.2283326.n4.nabble.com/Iostreams-how-can-I-control-my-ostream-fi... Sent from the Boost - Users mailing list archive at Nabble.com.