--- src/.svn/text-base/doxygen.cpp.svn-base	2011-06-30 22:02:54.939800000 +0200
+++ src/doxygen.cpp	2011-07-18 20:32:59.021232800 +0200
@@ -2676,7 +2676,11 @@
   int l,i=-1;
   static QRegExp re("([a-z_A-Z0-9: ]*[ &*]+[ ]*");
 
-  if (!root->type.isEmpty() && (i=re.match(root->type,0,&l))!=-1) // function variable
+  if  (cd && cd -> getLanguage() == SrcLangExt_F90)
+  {
+    // Fortran does not know about pointers
+  }
+  else if (!root->type.isEmpty() && (i=re.match(root->type,0,&l))!=-1) // function variable
   {
     root->args+=root->type.right(root->type.length()-i-l);
     root->type=root->type.left(i+l);
@@ -2909,6 +2913,7 @@
           (root->type.isEmpty() || 
            (root->type.find(re,0)==-1 || root->args.find(")[")!=-1) ||  // type contains ..(..* and args not )[.. -> function pointer
            root->type.find(")(")!=-1 || root->type.find("operator")!=-1 // type contains ..)(.. and not "operator"
+            || (cd -> getLanguage() == SrcLangExt_F90)                  // Fortran does not know about pointers
           )
          )
       {
--- src/.svn/text-base/fortranscanner.l.svn-base	2011-06-30 22:02:54.372800000 +0200
+++ src/fortranscanner.l	2011-07-17 21:38:49.511002200 +0200
@@ -768,7 +776,7 @@
 					    else
 					    {
 					      if ((current_root->name.lower() == argName.lower()) ||
-						  (modifiers[current_root->parent()][current_root->name.lower()].returnName == argName.lower()))
+						  (modifiers[current_root->parent()][current_root->name.lower()].returnName.lower() == argName.lower()))
 					      {
 						int strt = current_root->type.find("function");
 						QString lft;
