diff --git a/plio/io/io_controlnetwork.py b/plio/io/io_controlnetwork.py
index e01dea5ec51f6dce596ee308cee1ec9f5db7fd18..5e03f93c48476c9f0710808cc01081feb8376942 100644
--- a/plio/io/io_controlnetwork.py
+++ b/plio/io/io_controlnetwork.py
@@ -89,6 +89,25 @@ class IsisStore(object):
               The current index to be assigned to newly added points
     """
 
+    point_field_map = {
+        'type' : 'pointType',
+        'chooserName' : 'pointChoosername',
+        'datetime' : 'pointDatetime',
+        'editLock' : 'pointEditLock',
+        'ignore' : 'pointIgnore',
+        'jigsawRejected' : 'pointJigsawRejected',
+        'log' : 'pointLog'
+    }
+    measure_field_map = {
+        'type' : 'measureType',
+        'choosername' : 'measureChoosername',
+        'datetime' : 'measureDatetime',
+        'editLock' : 'measureEditLock',
+        'ignore' : 'measureIgnore',
+        'jigsawRejected' : 'measureJigsawRejected',
+        'log' : 'measureLog'
+    }
+
     def __init__(self, path, mode=None, **kwargs):
         self.nmeasures = 0
         self.npoints = 0
@@ -180,10 +199,11 @@ class IsisStore(object):
                     pts.append(meas)
 
                 byte_count += 4 + message_size
-        self.point_attrs = [i if i != 'jigsawRejected' else 'pointJigsawRejected' for i in self.point_attrs]
-        cols = self.point_attrs + self.measure_attrs
 
-        cols = self.point_attrs + self.measure_attrs
+        # Some point and measure fields have the same name, so mangle them as point_ and measure_
+        point_cols = [self.point_field_map[attr] if attr in self.point_field_map else attr for attr in self.point_attrs]
+        measure_cols = [self.measure_field_map[attr] if attr in self.measure_field_map else attr for attr in self.measure_attrs]
+        cols = point_cols + measure_cols
         df = IsisControlNetwork(pts, columns=cols)
         # Convert the (0.5, 0.5) origin pixels back to (0,0) pixels
         df['line'] -= 0.5
@@ -249,7 +269,6 @@ class IsisStore(object):
                         point_spec.aprioriCovar.extend(arr)
                     else:
                         setattr(point_spec, attr, attrtype(g.iloc[0][attr]))
-            # point_spec.type = 2  # Hardcoded to free this is bad
 
             # The reference index should always be the image with the lowest index
             point_spec.referenceIndex = 0
@@ -265,7 +284,7 @@ class IsisStore(object):
                 # ISIS pixels are centered on (0.5, 0.5). NDArrays are (0,0) based.
                 measure_spec.sample = m.x + 0.5 
                 measure_spec.line = m.y + 0.5
-                measure_spec.type = m.measuretype
+                measure_spec.type = m.measure_type
                 measure_iterable.append(measure_spec)
                 self.nmeasures += 1
 
diff --git a/plio/io/tests/test_io_controlnetwork.py b/plio/io/tests/test_io_controlnetwork.py
index dc4b1cd328861a445813ff598d4c7c7bef067805..c93663e05acdf642a20ed98297f94f94d555ba8a 100644
--- a/plio/io/tests/test_io_controlnetwork.py
+++ b/plio/io/tests/test_io_controlnetwork.py
@@ -24,6 +24,12 @@ def test_cnet_read(cnet_file):
     assert len(df) == find_in_dict(df.header, 'NumberOfMeasures')
     assert isinstance(df, io_controlnetwork.IsisControlNetwork)
     assert len(df.groupby('id')) == find_in_dict(df.header, 'NumberOfPoints')
+    for proto_field, mangled_field in io_controlnetwork.IsisStore.point_field_map.items():
+        assert proto_field not in df.columns
+        assert mangled_field in df.columns
+    for proto_field, mangled_field in io_controlnetwork.IsisStore.measure_field_map.items():
+        assert proto_field not in df.columns
+        assert mangled_field in df.columns
 
 class TestWriteIsisControlNetwork(unittest.TestCase):