diff --git a/GUIs/AmpScanGUI.py b/GUIs/AmpScanGUI.py
index 5534d4ebf92300bb5535bfb92093ad7a89d1952a..deb3020a9cb695fdc7fb6d358727791a3b9b2bc3 100644
--- a/GUIs/AmpScanGUI.py
+++ b/GUIs/AmpScanGUI.py
@@ -10,9 +10,9 @@ from PyQt5.QtGui import (QColor, QFontMetrics, QImage, QPainter, QIcon,
                          QOpenGLVersionProfile)
 from PyQt5.QtWidgets import (QAction, QApplication, QGridLayout, QHBoxLayout,
                              QMainWindow, QMessageBox, QComboBox, QButtonGroup,
-                             QOpenGLWidget, QFileDialog,QLabel,QPushButton,
+                             QOpenGLWidget, QFileDialog, QLabel, QPushButton,
                              QSlider, QWidget, QTableWidget, QTableWidgetItem,
-                             QAbstractButton)
+                             QAbstractButton, QErrorMessage)
 
         
 class AmpScanGUI(QMainWindow):
@@ -200,31 +200,35 @@ class AmpScanGUI(QMainWindow):
             self.regCont.getNames()
 
     def runRegistration(self):
-        c1 = [31.0, 73.0, 125.0]
-        c3 = [170.0, 75.0, 65.0]
-        c2 = [212.0, 221.0, 225.0]
-        CMap1 = np.c_[[np.linspace(st, en) for (st, en) in zip(c1, c2)]]
-        CMap2 = np.c_[[np.linspace(st, en) for (st, en) in zip(c2, c3)]]
-        CMap = np.c_[CMap1[:, :-1], CMap2]
-        self.CMapN2P = np.transpose(CMap)/255.0
-        self.CMap02P = np.flip(np.transpose(CMap1)/255.0, axis=0)
-        baseline = str(self.regCont.baseline.currentText())
-        target = str(self.regCont.target.currentText())
-        self.fileManager.setTable(baseline, [1,0,0], 0.5, 0)
-        self.fileManager.setTable(target, [0,0,1], 0.5, 0)
-        reg = registration(self.files[baseline], self.files[target], steps = 5,
-                           smooth=1).reg
-        reg.addActor(CMap = self.CMap02P)
-        regName = target + '_reg'
-        self.files[regName] = reg
-        self.filesDrop.append(regName)
-        self.fileManager.addRow(regName, self.files[regName])
-        if hasattr(self, 'alCont'):
-            self.alCont.getNames()
-        if hasattr(self, 'regCont'):
-            self.regCont.getNames()
-        
-        print('Run the Registration code between %s and %s' % (baseline, target))
+        if len(self.files) >= 2:
+            # Needs to be at least 2 files to run registration
+            c1 = [31.0, 73.0, 125.0]
+            c3 = [170.0, 75.0, 65.0]
+            c2 = [212.0, 221.0, 225.0]
+            CMap1 = np.c_[[np.linspace(st, en) for (st, en) in zip(c1, c2)]]
+            CMap2 = np.c_[[np.linspace(st, en) for (st, en) in zip(c2, c3)]]
+            CMap = np.c_[CMap1[:, :-1], CMap2]
+            self.CMapN2P = np.transpose(CMap)/255.0
+            self.CMap02P = np.flip(np.transpose(CMap1)/255.0, axis=0)
+            baseline = str(self.regCont.baseline.currentText())
+            target = str(self.regCont.target.currentText())
+            self.fileManager.setTable(baseline, [1,0,0], 0.5, 0)
+            self.fileManager.setTable(target, [0,0,1], 0.5, 0)
+            reg = registration(self.files[baseline], self.files[target], steps = 5,
+                               smooth=1).reg
+            reg.addActor(CMap = self.CMap02P)
+            regName = target + '_reg'
+            self.files[regName] = reg
+            self.filesDrop.append(regName)
+            self.fileManager.addRow(regName, self.files[regName])
+            if hasattr(self, 'alCont'):
+                self.alCont.getNames()
+            if hasattr(self, 'regCont'):
+                self.regCont.getNames()
+
+            print('Run the Registration code between %s and %s' % (baseline, target))
+        else:
+            show_message("Must be at least 2 objects loaded to run registration")
         
     def register(self):
         """
@@ -486,6 +490,37 @@ class RegistrationControls(QMainWindow):
         self.target.addItems(self.names)
 
 
+def show_message(message, message_type="err", title="An Error Occured..."):
+    """
+    Parameters
+    ----------
+    message : string
+        The message to be displayed
+    message_type : string
+        The type of message e.g. "err" or "info"
+    title : string
+        The title of the dialog window
+
+    Examples
+    --------
+    >>> show_message("test")
+    >>> show_message("test2", "info", "test")
+
+    """
+    dialog = QMessageBox()
+    dialog.setText(message)
+    dialog.setWindowTitle(title)
+    icons = {
+        "err": QMessageBox.Critical,
+        "info": QMessageBox.Information
+    }
+    dialog.setIcon(icons[message_type])
+    dialog.setStandardButtons(QMessageBox.Ok)
+
+    # Makes sure doesn't close until user closes it
+    dialog.exec_()
+
+
 if __name__ == "__main__":
     app = QApplication(sys.argv)
 #    mainWin = AlignControls([''])
diff --git a/tests/pca_tests/stl_file_3.stl b/tests/pca_tests/stl_file_3.stl
index c95508eaf21b1af7b779e72c26da6855d97ec416..88e4eb61d256bf21021438b0ede4bd57e1fefd98 100644
--- a/tests/pca_tests/stl_file_3.stl
+++ b/tests/pca_tests/stl_file_3.stl
@@ -1,3 +1,3 @@
 version https://git-lfs.github.com/spec/v1
-oid sha256:b4d4d2f0165ec971f8311c9eaa03370b19c5f43a29490b9cf486ac2b6d7d0614
+oid sha256:01a1d8abef374f4c78789ab9d5e38b244b99ba5cd34e3ddf2f7ee06f5c3b5d1a
 size 64084