diff --git a/main.py b/main.py
index d559600f43666d739473c9569856e9e8a7081746..b8c30eff0cf5ae91312e33c734450b878f060a61 100644
--- a/main.py
+++ b/main.py
@@ -3,6 +3,8 @@ from glob import glob
 import re
 import netCDF4
 from aeri_tools.io.dmv.housekeeping import get_all_housekeeping
+import pandas as pd
+import numpy as np
 
 
 from electronic_checks import electronic_checks
@@ -22,6 +24,7 @@ levels = [
 ]
 
 def save_quality(frame, qc_path):
+    frame = frame.ix[pd.notnull(frame.sum_index)].set_index('sum_index')
     ncdf = netCDF4.Dataset(qc_path, 'w')
     time = ncdf.createDimension('time', len(frame))
     base_time = ncdf.createVariable('base_time', 'i8', ())
@@ -41,8 +44,11 @@ def save_quality(frame, qc_path):
     
 
 def read_frame(cxs_file, sum_file):
-    hk = get_all_housekeeping(cxs_file).combine_first(
-        get_all_housekeeping(sum_file))
+    cxs = get_all_housekeeping(cxs_file)
+    cxs['cxs_index'] = np.arange(len(cxs))
+    sum_ = get_all_housekeeping(sum_file)
+    sum_['sum_index'] = np.arange(len(sum_))
+    hk = cxs.combine_first(sum_).sort_values(['cxs_index','sum_index'])
     hk.index.name = 'datetime'
     return hk.reset_index()