diff --git a/ess/TraceWin.py b/ess/TraceWin.py
index e8df760271497fe28c059ade224c06ef6bc73050..6350064a47698b5cbef78a16ee6e77eec3312d64 100644
--- a/ess/TraceWin.py
+++ b/ess/TraceWin.py
@@ -237,16 +237,13 @@ class plt:
 
         self.avg=dict(x=[], xp=[], y=[], yp=[], E=[], phi=[])
 
-        vals=self._columns
+        vals=self._columns[:-1]
 
         for i in self.Nelp:
             data=self[i]
             for v in vals:
                 self.avg[v].append(numpy.average(data[v]))
 
-        for v in vals:
-            self.avg[v]=numpy.array(self.avg[v])
-
     def calc_minmax(self,pmin=5,pmax=95):
         '''
         Calculates min/max values of beam coordinates
@@ -291,10 +288,15 @@ class plt:
         if not hasattr(self,'avg'):
                self.calc_avg()
 
-        vals=self._columns
+        vals=self._columns[:-1]
+
+        self.sigma=[]
+        for j in xrange(len(self.Nelp)):
+            i=self.Nelp[j]
+            data=self[i]
+            self.sigma.append([[numpy.mean( (data[n]-self.avg[m][j]) * (data[m] - self.avg[m][j]) ) for n in vals] for m in vals])
 
-        self.sigma=numpy.array([[numpy.mean( (self[n]-self.avg[n]) * (self[m] - self.avg[m]) ) for n in vals] for m in vals])
-        print self.sigma.shape
+        self.sigma=numpy.array(self.sigma)
 
     def calc_twiss(self):
         '''