diff --git a/pyglance/glance/compare.py b/pyglance/glance/compare.py
index a14f49017d3e93143f28f67ab45b86d1992f28a0..b2afe98c0daacad60d8b30b83cd97cb8c6c2d749 100644
--- a/pyglance/glance/compare.py
+++ b/pyglance/glance/compare.py
@@ -992,28 +992,6 @@ python -m glance
         isParent = True 
         childPids = []
         
-        # loop to create the images for all our variables
-        if (runInfo['shouldIncludeImages']) :
-            for varKey in variableAnalysisInfo :
-                if (not ('shouldIncludeImages' in variableAnalysisInfo[varKey]['run_info'])) \
-                    or (variableAnalysisInfo[varKey]['run_info']['shouldIncludeImages']) :
-                    
-                    # create the images comparing that variable
-                    print("\tcreating figures for: " + variableAnalysisInfo[varKey]['exp_name'])
-                    plot.plot_and_save_figure_comparison(variableAnalysisInfo[varKey]['data']['A'],
-                                                         variableAnalysisInfo[varKey]['data']['B'],
-                                                         variableAnalysisInfo[varKey]['run_info'],
-                                                         files['file A']['path'],
-                                                         files['file B']['path'],
-                                                         latitudeA, longitudeA,
-                                                         latitudeB, longitudeB,
-                                                         latitudeCommon, longitudeCommon,
-                                                         spaciallyInvalidMaskA,
-                                                         spaciallyInvalidMaskB,
-                                                         outputPath, True,
-                                                         doFork=runInfo['doFork']) 
-                    print("\tfinished creating figures for: " + variableAnalysisInfo[varKey]['exp_name'])
-        
         # reports are fast, so the parent thread will just do this
         # generate our general report pages once we've looked at all the variables
         if (runInfo['shouldIncludeReport']) :
@@ -1054,6 +1032,28 @@ python -m glance
             print ('generating glossary')
             report.generate_and_save_doc_page(delta.STATISTICS_DOC, outputPath)
         
+        # loop to create the images for all our variables
+        if (runInfo['shouldIncludeImages']) :
+            for varKey in variableAnalysisInfo :
+                if (not ('shouldIncludeImages' in variableAnalysisInfo[varKey]['run_info'])) \
+                    or (variableAnalysisInfo[varKey]['run_info']['shouldIncludeImages']) :
+                    
+                    # create the images comparing that variable
+                    print("\tcreating figures for: " + variableAnalysisInfo[varKey]['exp_name'])
+                    plot.plot_and_save_figure_comparison(variableAnalysisInfo[varKey]['data']['A'],
+                                                         variableAnalysisInfo[varKey]['data']['B'],
+                                                         variableAnalysisInfo[varKey]['run_info'],
+                                                         files['file A']['path'],
+                                                         files['file B']['path'],
+                                                         latitudeA, longitudeA,
+                                                         latitudeB, longitudeB,
+                                                         latitudeCommon, longitudeCommon,
+                                                         spaciallyInvalidMaskA,
+                                                         spaciallyInvalidMaskB,
+                                                         outputPath, True,
+                                                         doFork=runInfo['doFork']) 
+                    print("\tfinished creating figures for: " + variableAnalysisInfo[varKey]['exp_name'])
+        
         # if we're the parent, wait for any children to catch up
         if isParent:
             if len(childPids) > 0 :
diff --git a/pyglance/glance/io.py b/pyglance/glance/io.py
index d1b7263a738733db49108b25cc66da916b82ef6b..9225e527d8a466f9600de278b0ab7a85dee8f5c0 100644
--- a/pyglance/glance/io.py
+++ b/pyglance/glance/io.py
@@ -82,11 +82,13 @@ class hdf(SD):
         
         # get information about where the data is the missing value
         missing_val = self.missing_value(name)
-        missing_mask = (raw_data_copy == missing_val)
+        missing_mask = np.zeros(raw_data_copy.shape, dtype=np.bool)
+        missing_mask[raw_data_copy == missing_val] = True
         
         # create the scaled version of the data
         scaled_data_copy = np.array(raw_data_copy, dtype=data_type)
-        scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] - add_offset) * scale_factor #TODO, type truncation issues?
+        #scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] - add_offset) * scale_factor #TODO, type truncation issues?
+        scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] * scale_factor) + add_offset #TODO, type truncation issues?
         
         return scaled_data_copy 
     
@@ -146,11 +148,13 @@ class nc(CDF):
         
         # get information about where the data is the missing value
         missing_val = self.missing_value(name)
-        missing_mask = (raw_data_copy == missing_val)
+        missing_mask = np.zeros(raw_data_copy.shape, dtype=np.bool)
+        missing_mask[raw_data_copy == missing_val] = True
         
         # create the scaled version of the data
         scaled_data_copy = np.array(raw_data_copy, dtype=data_type)
-        scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] - add_offset) * scale_factor #TODO, type truncation issues?
+        #scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] - add_offset) * scale_factor #TODO, type truncation issues?
+        scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] * scale_factor) + add_offset #TODO, type truncation issues?
         
         return scaled_data_copy 
     
@@ -222,11 +226,13 @@ class h5(object):
         
         # get information about where the data is the missing value
         missing_val = self.missing_value(name)
-        missing_mask = (raw_data_copy == missing_val)
+        missing_mask = np.zeros(raw_data_copy.shape, dtype=np.bool)
+        missing_mask[raw_data_copy == missing_val] = True
         
         # create the scaled version of the data
         scaled_data_copy = np.array(raw_data_copy, dtype=data_type)
-        scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] - add_offset) * scale_factor #TODO, type truncation issues?
+        #scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] - add_offset) * scale_factor #TODO, type truncation issues?
+        scaled_data_copy[~missing_mask] = (scaled_data_copy[~missing_mask] * scale_factor) + add_offset #TODO, type truncation issues?
         
         return scaled_data_copy