diff --git a/app.py b/app.py
index 9f5cd7c..1649113 100644
--- a/app.py
+++ b/app.py
@@ -11,9 +11,12 @@
 import tornado.template
 from google.appengine.ext import blobstore
 from google.appengine.ext.webapp import blobstore_handlers
+import wifipacket
+
 
 loader = tornado.template.Loader('.')
 
+
 class _BaseHandler(webapp2.RequestHandler):
   def render(self, template, **kwargs):
     d = dict()
@@ -40,12 +43,8 @@
     blobres = str(urllib.unquote(blobres))
     blob_info = blobstore.BlobInfo.get(blobres)
     reader = blob_info.open()
-    total = 0
-    while 1:
-      d = reader.read(1024*1024)
-      total += len(d)
-      if not d: break
-    self.render('view.html', blob=blob_info, total=total)
+    packets = wifipacket.Packetize(reader)
+    self.render('view.html', blob=blob_info, packets=packets)
 
 
 settings = dict(
diff --git a/view.html b/view.html
index 458f4f5..068275c 100644
--- a/view.html
+++ b/view.html
@@ -7,5 +7,8 @@
 
   filename: {{blob.filename}}<p>
   size: {{blob.size}}<p>
-  total: {{total}}<p>
+
+  {% for p, frame in packets %}
+    {{p.get('ta')}}<br>
+  {% end %}
 {% end %}
diff --git a/wifipacket.py b/wifipacket.py
index 1961242..57ffb37 100755
--- a/wifipacket.py
+++ b/wifipacket.py
@@ -250,6 +250,7 @@
 
     # pcap packet data
     radiotap = stream.read(incl_len)
+    if len(radiotap) < incl_len: break  # EOF
 
     opt.incl_len = incl_len
     opt.orig_len = orig_len
@@ -308,11 +309,13 @@
     ofs = 4
     for i, fieldname in enumerate(typefields):
       if fieldname == 'seq':
+        if len(frame) < ofs + 2: break
         seq = struct.unpack('<H', frame[ofs:ofs + 2])[0]
         opt.seq = (seq & 0xfff0) >> 4
         opt.frag = (seq & 0x000f)
         ofs += 2
       else:
+        if len(frame) < ofs + 6: break
         opt[fieldname] = MacAddr(frame[ofs:ofs + 6])
         ofs += 6
 
