diff --git a/ess/TraceWin.py b/ess/TraceWin.py
index 096e05b260b1ec8b228659ab36f1f106e9f73af3..9c1a9613b97e994b0db4b0eadcba15fd152517ca 100644
--- a/ess/TraceWin.py
+++ b/ess/TraceWin.py
@@ -403,13 +403,21 @@ class density_file:
     into a pythonized object
     '''
 
-    def __init__(self, filename):
+    def __init__(self, filename, envelope=None):
         import numpy, sys
 
 
         self.filename=filename
         self.fin=file(self.filename, 'r')
 
+        if envelope==None: # try to guess
+            if filename.split('/')[-1].split('.')[0]=='Density_Env':
+                self.envelope=True
+            else:
+                self.envelope=False
+        else:
+            self.envelope=envelope
+
         # currently unknown:
         self.version=0
 
@@ -510,11 +518,14 @@ class density_file:
 
         self._getHeader()
         
-        if self.version==8:
-            numpy.fromfile(self.fin, dtype=numpy.int16, count=8344/2)
-        if self.Nrun>1:
-            #WARN not 100% sure if this is correct..
-            numpy.fromfile(self.fin, dtype=numpy.int16, count=((5588+self.Nrun*12)/2))
+        if self.envelope:
+            numpy.fromfile(self.fin, dtype=numpy.int16, count=292/2)
+        else:
+            if self.version==8:
+                numpy.fromfile(self.fin, dtype=numpy.int16, count=8344/2)
+            if self.Nrun>1:
+                #WARN not 100% sure if this is correct..
+                numpy.fromfile(self.fin, dtype=numpy.int16, count=((5588+self.Nrun*12)/2))
 
     def _get_7dim_array(array):
         '''