diff --git a/pymule/vegas.py b/pymule/vegas.py
index e30f677b6bec26c4e4384fef11c0279700cbf1f6..c6fd3785c98f0d31b01e476c793a1f5c70fbe118 100644
--- a/pymule/vegas.py
+++ b/pymule/vegas.py
@@ -1,4 +1,5 @@
 import struct
+import re
 
 
 def read_record(fp, typ):
@@ -17,3 +18,29 @@ def read_record(fp, typ):
             return body[0]
         else:
             return body
+
+
+def guess_version(fp, inttype='i'):
+    fp.seek(0)
+    magic = fp.read(17).replace('\00', '')
+    if magic == '\t McMule  \t':
+        version = read_record(fp, 'c').strip()
+        vers, intiness = re.match("v(\\d+)([NL])", version).groups()
+
+        return int(vers), {'N': 'i', 'L': 'q'}[intiness]
+
+    # Test v1 vs. v2
+    intsize = struct.calcsize(inttype)
+    fp.seek(6893 + 3*intsize)
+    nrq, nrbins = read_record(fp, inttype)
+    fp.seek(6925 + 5*intsize + 22*nrq + 16*nrbins*nrq)
+    try:
+        time = read_record(fp, 'd')
+        fp.seek(0)
+        return 2, inttype
+    except KeyError:
+        fp.seek(0)
+        return 1, inttype
+    except struct.error:
+        fp.seek(0)
+        return 1, inttype