Index: src/fortrancode.l
===================================================================
--- src/fortrancode.l	(revision 799)
+++ src/fortrancode.l	(working copy)
@@ -652,6 +652,7 @@
 ARGS      {BS}({ARGS_L0}|{ARGS_L1}|{ARGS_L2})
 
 NUM_TYPE  (complex|integer|logical|real)
+LOG_OPER  (\.and\.|\.eq\.|\.eqv\.|\.ge\.|\.gt\.|\.le\.|\.lt\.|\.ne\.|\.neqv\.|\.or\.|\.not\.)
 KIND      {ARGS}
 CHAR      (CHARACTER{ARGS}?|CHARACTER{BS}"*"({BS}[0-9]+|{ARGS}))
 TYPE_SPEC (({NUM_TYPE}({BS}"*"{BS}[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{BS_}COMPLEX|DOUBLE{BS_}PRECISION|{CHAR}|TYPE{ARGS})
@@ -976,6 +977,9 @@
 <*>\n					{
   					  codifyLines(yytext); 
   					}
+<*>{LOG_OPER}           	        { // Fortran logical comparison keywords
+  					  g_code->codify(yytext);
+					}
 <*>.					{ 
   					  g_code->codify(yytext);
 					}
Index: src/fortranscanner.l
===================================================================
--- src/fortranscanner.l	(revision 799)
+++ src/fortranscanner.l	(working copy)
@@ -246,6 +246,7 @@
 NOARGS    {BS}"\n"
 
 NUM_TYPE  (complex|integer|logical|real)
+LOG_OPER  (\.and\.|\.eq\.|\.eqv\.|\.ge\.|\.gt\.|\.le\.|\.lt\.|\.ne\.|\.neqv\.|\.or\.|\.not\.)
 KIND      {ARGS}
 CHAR      (CHARACTER{ARGS}?|CHARACTER{BS}"*"({BS}[0-9]+|{ARGS}))
 TYPE_SPEC (({NUM_TYPE}({BS}"*"{BS}[0-9]+)?)|({NUM_TYPE}{KIND})|DOUBLE{BS_}COMPLEX|DOUBLE{BS_}PRECISION|{CHAR}|TYPE{ARGS}|CLASS{ARGS}|PROCEDURE{ARGS}?)
@@ -1097,7 +1100,9 @@
                                             popBuffer();
                                           }
                                         }
- <*>.                 	                {
+<*>{LOG_OPER}           	        { // Fortran logical comparison keywords
+                                        }
+<*>.                 	                {
                                           //debugStr+=yytext;
 					  //printf("I:%c\n", *yytext);
                                         } // ignore remaining text 
