Index: uspace/lib/cpp/include/impl/streambuf.hpp
===================================================================
--- uspace/lib/cpp/include/impl/streambuf.hpp	(revision 8cce80b4c1752753474050cdf15448549ce43433)
+++ uspace/lib/cpp/include/impl/streambuf.hpp	(revision 94cb686c4de87ddb76597d87455c9d0e6b92d9de)
@@ -108,5 +108,5 @@
             int_type snextc()
             {
-                if (traits_type::eq(sbumpc, traits_type::eof()))
+                if (traits_type::eq(sbumpc(), traits_type::eof()))
                     return traits_type::eof();
                 else
@@ -117,5 +117,5 @@
             {
                 if (read_avail_())
-                    return traits_type::to_int_type(*input_next++);
+                    return traits_type::to_int_type(*input_next_++);
                 else
                     return uflow();
@@ -125,5 +125,5 @@
             {
                 if (read_avail_())
-                    return traits_type::to_int_type(*input_next++);
+                    return traits_type::to_int_type(*input_next_);
                 else
                     return underflow();
@@ -144,5 +144,5 @@
                     return pbackfail(traits_type::to_int_type(c));
                 else
-                    return traits_type::to_int_type(*(--input_next));
+                    return traits_type::to_int_type(*(--input_next_));
             }
 
@@ -152,5 +152,5 @@
                     return pbackfail();
                 else
-                    return traits_type::to_int_type(*(--input_next));
+                    return traits_type::to_int_type(*(--input_next_));
             }
 
@@ -196,5 +196,5 @@
             }
 
-            basic_strambuf& operator=(const basic_streambuf& rhs)
+            basic_streambuf& operator=(const basic_streambuf& rhs)
             {
                 input_begin_ = rhs.input_begin_;
@@ -300,9 +300,9 @@
             setbuf(char_type* s, streamsize n)
             {
-                return *this;
+                return this;
             }
 
             virtual pos_type seekoff(off_type off, ios_base::seekdir way,
-                                     ios_base::openmode which = ios_base::in | ops_base::out)
+                                     ios_base::openmode which = ios_base::in | ios_base::out)
             {
                 return pos_type(off_type(-1));
@@ -341,5 +341,5 @@
                         break;
 
-                    traits_type::asign(*s++, *input_next_++);
+                    *s++ = *input_next_++;
                 }
 
@@ -379,12 +379,11 @@
                     return 0;
 
-                char* = &s[0];
                 streamsize i{0};
                 for (; i <= n; ++i)
                 {
-                    if (!write_avail_() && traits_type::eq_int_type(overflow(), eof))
+                    if (!write_avail_() && traits_type::eq_int_type(overflow(), traits_type::eof()))
                         break;
 
-                    traits_type::assign(*s++, *output_next_++);
+                    *output_next_++ = *s++;
                 }
 
@@ -397,14 +396,16 @@
             }
 
+        protected:
+            char_type* input_begin_;
+            char_type* input_next_;
+            char_type* input_end_;
+
+            char_type* output_begin_;
+            char_type* output_next_;
+            char_type* output_end_;
+
+            locale locale_;
+
         private:
-            value_type* input_begin_;
-            value_type* input_next_;
-            value_type* input_end_;
-
-            value_type* output_begin_;
-            value_type* output_next_;
-            value_type* output_end_;
-
-            locale locale_;
 
             bool write_avail_() const
