diff --git a/ipi_extract.py b/ipi_extract.py
index 1e766632241ee05351ccc0c26eee8a08bd37959e..152f30f17854866d020d6a163b54d4e232028252 100644
--- a/ipi_extract.py
+++ b/ipi_extract.py
@@ -422,7 +422,12 @@ class Callback(object):
     def key_pressed(self, event):
         if self.ind_select:
             row = self.df[self.offset[self.curr_ind[self.curr],0]]
-            row['ind_number'] = row['ind_number'] + event.key
+            if event.key == 'backspace':
+                row['ind_number'] = row['ind_number'][:-1]
+            elif event.key in ['shift', 'control', 'alt']:
+                pass
+            else:
+                row['ind_number'] = row['ind_number'] + event.key
             self.ind_b.label.set_text(f'Current individual:\n{row["ind_number"]}')
             plt.draw()
         else: