diff --git a/libraries/dsp/correlator/tb/python/verify_correlator.py b/libraries/dsp/correlator/tb/python/verify_correlator.py
index 30fb1ab93480b4d5763583023250ef2c2b275d34..ec0941dfb9604fe6cdcea8593cd6d5af98f3dc55 100644
--- a/libraries/dsp/correlator/tb/python/verify_correlator.py
+++ b/libraries/dsp/correlator/tb/python/verify_correlator.py
@@ -19,8 +19,8 @@
 #
 ###############################################################################
 from common import *
-import matplotlib
-matplotlib.use('TkAgg')
+#import matplotlib
+#matplotlib.use('TkAgg')
 
 from common_dsp import *
 from mem_init_file import list_to_hex
@@ -54,7 +54,7 @@ CORRELATOR_OUTPUT_COMPLEX_WIDTH = CORRELATOR_MULT_OUTPUT_COMPLEX_WIDTH + ceil_lo
 NOF_WORDS_PER_BLOCK = NOF_CHANNELS*pow(2, NOF_FOLDS)
 MEM_WIDTH  = COMPLEX_WIDTH*2
 MEM_DEPTH  = NOF_WORDS_PER_BLOCK
-PATH = "../hex"
+PATH = "../../src/hex"
 FILENAME = "complex_subbands"
 
 
@@ -100,7 +100,7 @@ def complex_to_int(input_lists):
             print 'Input', input_nr, 'Channel', word, 're,im', re, im
             re_bits = CommonBits(re, COMPLEX_WIDTH)
             im_bits = CommonBits(im, COMPLEX_WIDTH)
-            concat_bits = re_bits & im_bits
+            concat_bits = im_bits & re_bits
             output_list.append(concat_bits.data)
         output_lists.append(output_list)
 
@@ -149,6 +149,7 @@ def correlate(input_lists, accumulation_factor):
     # Feed each channel to the correlation function
     vis_per_channel = []
     for inputs in inputs_per_channel:
+
         vis = complex_matrix_corr(inputs, inputs, 'complex', conjugate=True)
 
         # complex_matrix_corr() returns a full matrix of nof_inputs*nof_inputs.
@@ -167,12 +168,27 @@ def correlate(input_lists, accumulation_factor):
         
         vis_per_channel.append( unique_vis_per_channel_int_acc  )
    
-
     return vis_per_channel
    
 
 REC_FILE = os.environ['RADIOHDL']+'/libraries/dsp/correlator/tb/rec/correlator_src_out_arr0.rec'
 
+NOF_DP_RECORD_FIELDS    = 11
+
+DP_RECORD_INDEX_SYNC    = 0  
+DP_RECORD_INDEX_BSN     = 1
+DP_RECORD_INDEX_DATA    = 2
+DP_RECORD_INDEX_RE      = 3
+DP_RECORD_INDEX_IM      = 4
+DP_RECORD_INDEX_VALID   = 5
+DP_RECORD_INDEX_SOP     = 6
+DP_RECORD_INDEX_EOP     = 7
+DP_RECORD_INDEX_EMPTY   = 8
+DP_RECORD_INDEX_CHANNEL = 9
+DP_RECORD_INDEX_ERR     = 10
+
+
+
 def rec_file_to_list(filename, field_indices=range(11)):
     """
     Read a .rec file written by dp_stream_recorder.vhd and return the contents
@@ -187,20 +203,6 @@ def rec_file_to_list(filename, field_indices=range(11)):
     field_indices.
 
     """
-    NOF_DP_RECORD_FIELDS    = 11
-
-    DP_RECORD_INDEX_SYNC    = 0  
-    DP_RECORD_INDEX_BSN     = 1
-    DP_RECORD_INDEX_DATA    = 2
-    DP_RECORD_INDEX_RE      = 3
-    DP_RECORD_INDEX_IM      = 4
-    DP_RECORD_INDEX_VALID   = 5
-    DP_RECORD_INDEX_SOP     = 6
-    DP_RECORD_INDEX_EOP     = 7
-    DP_RECORD_INDEX_EMPTY   = 8
-    DP_RECORD_INDEX_CHANNEL = 9
-    DP_RECORD_INDEX_ERR     = 10
-
     fields_sync    = []
     fields_bsn     = [] 
     fields_data    = []
@@ -245,19 +247,28 @@ def rec_file_to_complex(filename, complex_width):
     """
     Read from a .rec file and extract the complex fields. 
     Returns complex format.
-    Set packetize to True to re-shape the list into packet-sized (as tagged
-    by SOP and EOP) sublists.
+    The complex_list is re-shaped into packet-sized (as tagged by SOP and EOP)
+    sublists.
     """
-    re_im_strings = rec_file_to_list(filename, [3,4])
+    # Read REC file and extract re,im,EOP fields.
+    re_im_eop_strings = rec_file_to_list(filename, [DP_RECORD_INDEX_RE,DP_RECORD_INDEX_IM,DP_RECORD_INDEX_EOP])
     complex_list = []
-
-    for re_str,im_str in zip(re_im_strings[0], re_im_strings[1]):
+ 
+    # Convert re,im strings to complex format   
+    for re_str,im_str in zip(re_im_eop_strings[0], re_im_eop_strings[1]):
         re = to_signed(int(re_str, 16), complex_width)
         im = to_signed(int(im_str, 16), complex_width)
         # Convert integers to complex 
         complex_list.append( complex(re,im) )
 
-    return complex_list
+    # Figure out the packet size based on EOP
+    for word_nr,eop in enumerate(re_im_eop_strings[2]):
+        if eop == '1':
+            packet_size=word_nr+1
+            break
+
+    # Split the complex_list into packet_size chunks and return the result.
+    return split_list(complex_list, packet_size)
 
 # Generate input data
 correlator_snk_in_arr_complex = gen_complex_inputs(NOF_INPUTS, NOF_CHANNELS, COMPLEX_WIDTH)
@@ -265,7 +276,7 @@ correlator_snk_in_arr_complex = gen_complex_inputs(NOF_INPUTS, NOF_CHANNELS, COM
 # Convert to int and generate HEX files from input data
 correlator_snk_in_arr_int = complex_to_int(correlator_snk_in_arr_complex)
 
-#gen_correlator_snk_in_arr_hex(correlator_snk_in_arr_int)
+gen_correlator_snk_in_arr_hex(correlator_snk_in_arr_int)
 
 # Calculate correlator output from input lists
 correlator_src_out_arr_ref = correlate(correlator_snk_in_arr_complex, INTEGRATION_PERIOD)
@@ -277,8 +288,13 @@ correlator_src_out_arr_ref = correlate(correlator_snk_in_arr_complex, INTEGRATIO
 
 # Read test bench output file written by dp_stream_rec_play.vhd
 correlator_src_out_arr = rec_file_to_complex(REC_FILE, complex_width=CORRELATOR_OUTPUT_COMPLEX_WIDTH)
-print correlator_src_out_arr[0:21]
-print correlator_src_out_arr_ref[0][0:21]
+
+
+
+print 'corr out', correlator_src_out_arr[0]
+print 'corr ref', correlator_src_out_arr_ref[0]
+
+
 
 def plot_phase_shifts(correlator_output):
     """
@@ -300,10 +316,10 @@ def plot_phase_shifts(correlator_output):
     # Split the list into chunks of nof_visibilities, plot them channel after channel
     ################################################################################
     phases_per_channel = split_list(phases, NOF_VISIBILITIES)
-    
     for channel_phases in phases_per_channel:
         phases_mat = numpy.array(channel_phases)
         mat = unique_vis_to_full_matrix(phases_mat)  
         plot_matrix_color([[mat]])
-
-plot_phase_shifts(correlator_src_out_arr_ref[0]) # NOTE THE INVERTED PHASES !!!!!!!!!!!!!!!!!!
+  
+plot_phase_shifts(correlator_src_out_arr[0])
+plot_phase_shifts(correlator_src_out_arr_ref[0])