#define EXTERN extern "C"
 #endif
 
+#define FIRST_COLUMN 1
+
   /* m2.flex provides a lexical analyser for GNU Modula-2.  */
 
   struct lineInfo {
   currentLine->lineno = lineno;
   currentLine->tokenpos=0;
   currentLine->nextpos=0;
-  currentLine->column=0;
+  currentLine->column=FIRST_COLUMN;
   START_LINE (lineno, yyleng);
   yyless(1);                  /* push back all but the \n */
   traceLine ();
   seenModuleStart      = false;
   currentLine->nextpos = currentLine->tokenpos+yyleng;
   currentLine->toklen  = yyleng;
-  /* if (currentLine->column == 0) */
   currentLine->column = currentLine->tokenpos+1;
   currentLine->location =
     M2Options_OverrideLocation (GET_LOCATION (currentLine->column,
   currentLine->toklen     = 0;
   currentLine->nextpos    = 0;
   currentLine->lineno = lineno;
-  currentLine->column     = 0;
+  currentLine->column     = FIRST_COLUMN;
   currentLine->inuse      = true;
   currentLine->next       = NULL;
 }
 
 EXTERN int m2flex_GetLineNo (void)
 {
-  if (currentLine != NULL)
-    return currentLine->lineno;
-  else
+  if (currentLine == NULL)
     return 0;
+  else
+    return currentLine->lineno;
 }
 
 /*
 
 EXTERN int m2flex_GetColumnNo (void)
 {
-  if (currentLine != NULL)
-    return currentLine->column;
+  if (currentLine == NULL)
+    return FIRST_COLUMN;
   else
-    return 0;
+    return currentLine->column;
 }
 
 /*
 
 EXTERN location_t m2flex_GetLocation (void)
 {
-  if (currentLine != NULL)
-    return currentLine->location;
-  else
+  if (currentLine == NULL)
     return 0;
+  else
+    return currentLine->location;
 }
 
 /*