diff --git a/alib2std/src/extensions/istream.cpp b/alib2std/src/extensions/istream.cpp
index b447983c51d6c110d14be9f61f7eef7a7ef3a208..3cd10bb73530be7306ba577a45ba6ee6c2b65da1 100644
--- a/alib2std/src/extensions/istream.cpp
+++ b/alib2std/src/extensions/istream.cpp
@@ -6,7 +6,7 @@ ext::istream & oprr ( ext::istream & in, const std::string & str, bool start ) {
 	if ( str.empty ( ) ) return in;
 
 	char c_str = str[0];
-	char c_in  = in.peek ( );
+	int c_in  = in.peek ( );
 	in.get ( );
 
 	if ( c_in == EOF ) {
@@ -25,7 +25,7 @@ ext::istream & oprr ( ext::istream & in, const std::string & str, bool start ) {
 
 	if ( in.fail ( ) ) {
 		in.clear ( );
-		in.putback ( c_in );
+		in.putback ( static_cast < char > ( c_in ) );
 		in.clear ( std::ios::failbit );
 	}