def update_distance(self, event):
         value = self.te_distance.GetValue()
         if value:
-            self.props['distance'] = float(value)
+            try:
+                new_val = float(value)
+                self.props['distance'] = new_val
+            except:
+                # reset GUI to last-accepted val
+                self.te_distance.SetValue(str(self.props['distance']))
+                pass
         self.update_mtc()
 
     def update_elevation(self, event):
         value = self.te_elevation.GetValue()
         if value:
-            self.props['elevation'] = int(value)
+            try:
+                new_val = int(value)
+                self.props['elevation'] = new_val
+            except:
+                # reset GUI to last-accepted val
+                self.te_elevation.SetValue(str(self.props['elevation']))
+                pass
         self.update_mtc()
 
     def update_fitness(self, event):