Index: src/sas/sascalc/corfunc/corfunc_calculator.py
===================================================================
--- src/sas/sascalc/corfunc/corfunc_calculator.py	(revision 033c14c0298370def550783abfb2af4ec263dbab)
+++ src/sas/sascalc/corfunc/corfunc_calculator.py	(revision a684c6435dd144a092b0c0a5c7d4c847428968f5)
@@ -202,5 +202,5 @@
             'd0': d0,
             'A': A,
-            'Lc/max': Lc/x[maxs[0]]
+            'fill': Lc/x[maxs[0]]
         }
 
Index: src/sas/sasgui/perspectives/corfunc/corfunc_panel.py
===================================================================
--- src/sas/sasgui/perspectives/corfunc/corfunc_panel.py	(revision 11500832ba17445175809761a96c5b123cc945d3)
+++ src/sas/sasgui/perspectives/corfunc/corfunc_panel.py	(revision a684c6435dd144a092b0c0a5c7d4c847428968f5)
@@ -20,5 +20,5 @@
     'd0': "Average Core Thickness: ",
     'A': "PolyDispersity: ",
-    'Lc/max': "Filling Fraction: "
+    'fill': "Filling Fraction: "
 }
 
@@ -62,4 +62,5 @@
         self.qmax = (0, 0)
         self.background = 0
+        self.extracted_params = None
         # Dictionary for saving refs to text boxes used to display output data
         self._output_boxes = None
@@ -97,4 +98,6 @@
         if self.state.background is not None:
             self.set_background(self.state.background)
+        if self.state.outputs is not None and self.state.outputs != {}:
+            self.set_extracted_params(self.state.outputs)
 
     def get_state(self):
@@ -107,4 +110,5 @@
         state.set_saved_state('qmax2_tcl', self.qmax[1])
         state.set_saved_state('background_tcl', self.background)
+        state.outputs = self.extracted_params
         if self._data is not None:
             state.file = self._data.title
@@ -134,6 +138,5 @@
         self._calculator.set_data(data)
         # Reset the outputs
-        for key in OUTPUT_STRINGS.keys():
-            self._output_boxes[key].SetValue("-")
+        self.set_extracted_params(None)
         if self._manager is not None:
             from sas.sasgui.perspectives.corfunc.corfunc import IQ_DATA_LABEL
@@ -220,7 +223,5 @@
                 StatusEvent(status=msg, info="Error"))
             return
-        for key in OUTPUT_STRINGS.keys():
-            value = params[key]
-            self._output_boxes[key].SetValue(value)
+        self.set_extracted_params(params)
 
     def save_project(self, doc=None):
@@ -257,4 +258,14 @@
         self._background_input.SetValue(str(bg))
         self._calculator.background = bg
+
+    def set_extracted_params(self, params):
+        self.extracted_params = params
+        if params is None:
+            for key in OUTPUT_STRINGS.keys():
+                self._output_boxes[key].SetValue('-')
+        else:
+            for key in OUTPUT_STRINGS.keys():
+                value = params[key]
+                self._output_boxes[key].SetValue(value)
 
 
Index: src/sas/sasgui/perspectives/corfunc/corfunc_state.py
===================================================================
--- src/sas/sasgui/perspectives/corfunc/corfunc_state.py	(revision 6970e515b90e6ef9cfc80d6df7c8c2e73abb6f18)
+++ src/sas/sasgui/perspectives/corfunc/corfunc_state.py	(revision a684c6435dd144a092b0c0a5c7d4c847428968f5)
@@ -24,10 +24,10 @@
 # List of output parameters, used by __str__
 output_list = [
-    ["long_period", "Long Period"],
-    ["hard_block_thickness", "Average Hard Block Thickness"],
-    ["interface_thickness", "Average Interface Thickness"],
-    ["core_thickness", "Average Core Thickness"],
-    ["polydispersity", "PolyDispersity"],
-    ["filling", "Filling Fraction"]
+    ['max', "Long Period (A): "],
+    ['Lc', "Average Hard Block Thickness (A): "],
+    ['dtr', "Average Interface Thickness (A): "],
+    ['d0', "Average Core Thickness: "],
+    ['A', "PolyDispersity: "],
+    ['fill', "Filling Fraction: "]
 ]
 
@@ -44,5 +44,5 @@
         self.qmax = [0, 0]
         self.background = None
-        self.outputs = None
+        self.outputs = {}
 
         self.saved_state = DEFAULT_STATE
@@ -160,4 +160,11 @@
             state.appendChild(element)
 
+        # Output parameters
+        output = new_doc.createElement("output")
+        top_element.appendChild(output)
+        for item in output_list:
+            element = new_doc.createElement(item[0])
+            element.appendChild(new_doc.createTextNode(self.outputs[item[0]]))
+            output.appendChild(element)
 
         # Save the file or return the original document with the state
@@ -206,4 +213,12 @@
                         self.set_saved_state(name=item, value=value)
 
+            # Parse outputs
+            entry = get_content('ns:output', node)
+            if entry is not None:
+                for item in output_list:
+                    parameter = get_content("ns:{}".format(item[0]), entry)
+                    if parameter is not None:
+                        self.outputs[item[0]] = parameter.text.strip()
+
 
 
@@ -214,4 +229,9 @@
 
     type_name = "Corfunc"
+
+    type = ["Invariant file (*.inv)|*.inv",
+            "SASView file (*.svs)|*.svs"]
+
+    ext = ['.cor', '.COR', '.svs', '.SVS']
 
     def __init__(self, callback):
@@ -234,5 +254,5 @@
             basename = os.path.basename(path)
             root, ext = os.path.splitext(basename)
-            if ext.lower() != '.xml' and ext.lower() != '.svs':
+            if not ext.lower() in self.ext:
                 raise IOError, "{} is not a supported file type".format(ext)
             tree = etree.parse(path, parser=etree.ETCompatXMLParser())
