diff --git a/tracy/tracy/src/t2lat.cc b/tracy/tracy/src/t2lat.cc
index 6750bf56dce9ecfdf6664d413f40b418f2adae90..f030006c775477d1112f0baa1a35e477dab09c34 100644
--- a/tracy/tracy/src/t2lat.cc
+++ b/tracy/tracy/src/t2lat.cc
@@ -7,9 +7,9 @@ L. Nadolski   SOLEIL        2002          Link to NAFF, Radia field maps
 J. Bengtsson  NSLS-II, BNL  2004 -        
 
 */
-/* Current revision $Revision: 1.16.2.1 $
+/* Current revision $Revision: 1.16.2.2 $
  On branch $Name: not supported by cvs2svn $
- Latest change $Date: 2011-05-09 14:47:34 $ by $Author: zhang $
+ Latest change $Date: 2011-06-30 13:38:10 $ by $Author: zhang $
 */
 
 
@@ -2506,12 +2506,14 @@ static bool Lat_DealElement(FILE **fi_, FILE **fo_, long *cc_, long *ll_,
             Frequency = <Frf>,   ( [Hz] )
             Voltage   = <Vrf>,   ( [V]  )
             Phase     = <phi_rf> (degrees)
-            harnum    = <h>
+            harnum    = <h>  
 
     Example
 
       CAV: Cavity, Frequency = 499.95e6, Voltage=1.22e6, harnum=328;
 
+     Comments:
+         RF harmonic number is mandatory 
     **************************************************************************/
   case cavsym:
     ClearHOMandDBN(&V);
@@ -2578,7 +2580,7 @@ static bool Lat_DealElement(FILE **fi_, FILE **fo_, long *cc_, long *ll_,
       printf("Elem_nFamMax exceeded: %ld(%ld)\n",
 	     globval.Elem_nFam, (long)Elem_nFamMax);
       exit_(1);
-    }
+    }  
     break;
 
 
@@ -4314,7 +4316,7 @@ void PrintResult(struct LOC_Lattice_Read *LINK)
        none
 
    Return:
-       none
+       family index
 
    Global variables:
        none
@@ -4323,23 +4325,28 @@ void PrintResult(struct LOC_Lattice_Read *LINK)
        none
 
    Comments:
-       
+       30-06-2011   Fix the bug to get the correct Cell[i].Elem.PName. 
 ****************************************************************************/
 
 long ElemIndex(const char *name)
 {
-  long       i;
-  int        n;
+  long       i = 0;
+  int        n = 0;
   partsName  name1, name2;
 
   const bool  prt = false;
 
   if (prt) printf("\n");
+  
 
-  strcpy(name1, name);
-  for (i = 0; i < (signed)strlen(name); i++)
-    name1[i] = tolower(name[i]);
+while(name[i]!= ' ' && name[i]!= '\0'){
+  name1[i] = tolower(name[i]);
+  i++;
+  }
+name1[i] = '\0'; 
 
+
+   
   if (globval.Elem_nFam > Elem_nFamMax) {
     printf("ElemIndex: Elem_nFamMax exceeded: %ld(%d)\n",
            globval.Elem_nFam, Elem_nFamMax);
@@ -4355,7 +4362,7 @@ long ElemIndex(const char *name)
       n++;
     }
     name2[n] = '\0';
-
+    
     if (prt)
       printf("%d %d %s |%s|%s|\n",
 	     n, strcmp(name2, name1) == 0, name1, ElemFam[i-1].ElemF.PName, name2);