Index: src/fortranscanner.l
===================================================================
RCS file: /cygdrive/d/cvs_doxygen/doxygen/doxygen/src/fortranscanner.l,v
retrieving revision 1.2
diff -u -r1.2 fortranscanner.l
--- src/fortranscanner.l	22 Jul 2012 08:07:46 -0000	1.2
+++ src/fortranscanner.l	22 Jul 2012 09:24:00 -0000
@@ -1640,84 +1640,84 @@
 {
   if (!mdfs.dimension.isNull()) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += mdfs.dimension;
   }
   if (mdfs.direction!=SymbolModifiers::NONE_D) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += directionStrs[mdfs.direction];
   }
   if (mdfs.optional) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "optional";
   }
   if (mdfs.allocatable) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "allocatable";
   }
   if (mdfs.external) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "external";
   }
   if (mdfs.intrinsic) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "intrinsic";
   }
   if (mdfs.parameter) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "parameter";
   }
   if (mdfs.pointer) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "pointer";
   }
   if (mdfs.target) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "target";
   }
   if (mdfs.save) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "save";
   }
   if (mdfs.deferred) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "deferred";
   }
   if (mdfs.nonoverridable) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "non_overridable";
   }
   if (mdfs.nopass) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "nopass";
   }
   if (mdfs.pass) 
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "pass";
     if (!mdfs.passVar.isEmpty())
       typeName += "(" + mdfs.passVar + ")";
   }
   if (mdfs.protection == SymbolModifiers::PUBLIC)
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "public";
   }
   else if (mdfs.protection == SymbolModifiers::PRIVATE)
   {
-    typeName += ", ";
+    if (typeName.length()) typeName += ", ";
     typeName += "private";
   }
 
