diff --git a/DynareFlex.ll b/DynareFlex.ll
index 0bb458090e42309f2588cf90b91061e738ff44a8..dedf87dca4be497f5a52858ec091d3d4d7a546fc 100644
--- a/DynareFlex.ll
+++ b/DynareFlex.ll
@@ -238,7 +238,13 @@ DATE -?[0-9]+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4][0-9]|5[0-2
                            unput('d');
                            free( yycopy );
                          }
-<DYNARE_STATEMENT>${DATE} { yylloc->step(); *yyout << yytext + 1; }
+<DYNARE_STATEMENT>${DATE} { yylloc->step();
+#if (YY_FLEX_MAJOR_VERSION > 2) || (YY_FLEX_MAJOR_VERSION == 2 && YY_FLEX_MINOR_VERSION >= 6)
+                            yyout << yytext + 1;
+#else
+                            *yyout << yytext + 1;
+#endif
+                          }
 <DYNARE_STATEMENT>dates  {dates_parens_nb=0; BEGIN DATES_STATEMENT; yylval->string_val = new string("dates");}
 <DYNARE_STATEMENT>file                  {return token::FILE;}
 <DYNARE_STATEMENT>datafile 		{return token::DATAFILE;}
diff --git a/macro/MacroFlex.ll b/macro/MacroFlex.ll
index 9e694eb485b30ba0ae1ad2b1b1d7a66f7e1b54a7..e25a9ea4345bbe5a0dbf2533ef360afd7bfe5f12 100644
--- a/macro/MacroFlex.ll
+++ b/macro/MacroFlex.ll
@@ -188,7 +188,11 @@ CONT \\\\
                                 }
                               else
                                 {
+#if (YY_FLEX_MAJOR_VERSION > 2) || (YY_FLEX_MAJOR_VERSION == 2 && YY_FLEX_MINOR_VERSION >= 6)
+                                  yyout << endl;
+#else
                                   *yyout << endl;
+#endif
                                   BEGIN(INITIAL);
                                 }
                               return token::EOL;
@@ -383,7 +387,13 @@ CONT \\\\
                             }
 
  /* We don't use echo, because under Cygwin it will add an extra \r */
-<INITIAL>{EOL}              { yylloc->lines(1); yylloc->step(); *yyout << endl; }
+<INITIAL>{EOL}              { yylloc->lines(1); yylloc->step();
+#if (YY_FLEX_MAJOR_VERSION > 2) || (YY_FLEX_MAJOR_VERSION == 2 && YY_FLEX_MINOR_VERSION >= 6)
+                              yyout << endl;
+#else
+                              *yyout << endl;
+#endif
+                            }
 
  /* Copy everything else to output */
 <INITIAL>.                  { yylloc->step(); ECHO; }
@@ -401,8 +411,13 @@ void
 MacroFlex::output_line(Macro::parser::location_type *yylloc) const
 {
   if (!no_line_macro)
-    *yyout << endl << "@#line \"" << *yylloc->begin.filename << "\" "
-           << yylloc->begin.line << endl;
+#if (YY_FLEX_MAJOR_VERSION > 2) || (YY_FLEX_MAJOR_VERSION == 2 && YY_FLEX_MINOR_VERSION >= 6)
+    const_cast<ostream&>(yyout)
+#else
+    *yyout
+#endif
+     << endl << "@#line \"" << *yylloc->begin.filename << "\" "
+     << yylloc->begin.line << endl;
 }
 
 void