Index: src/sas/qtgui/Perspectives/Fitting/ConstraintWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/ConstraintWidget.py	(revision 07645932c23d39791c9864289a850f8ef2d3afa5)
+++ src/sas/qtgui/Perspectives/Fitting/ConstraintWidget.py	(revision eb1a386ba445241493784066d14c478c418cd3c6)
@@ -142,5 +142,7 @@
         is_good_moniker = self.validateMoniker(new_moniker)
         if not is_good_moniker:
+            self.tblTabList.blockSignals(True)
             item.setBackground(QtCore.Qt.red)
+            self.tblTabList.blockSignals(False)
             self.cmdFit.setEnabled(False)
             return
Index: src/sas/qtgui/Plotting/Plotter.py
===================================================================
--- src/sas/qtgui/Plotting/Plotter.py	(revision 8f83719fd67e6a72acdcd666e7bf1e2326b52cd0)
+++ src/sas/qtgui/Plotting/Plotter.py	(revision eb1a386ba445241493784066d14c478c418cd3c6)
@@ -282,37 +282,39 @@
         Show a dialog allowing adding custom text to the chart
         """
-        if self.addText.exec_() == QtWidgets.QDialog.Accepted:
-            # Retrieve the new text, its font and color
-            extra_text = self.addText.text()
-            extra_font = self.addText.font()
-            extra_color = self.addText.color()
-
-            # Place the text on the screen at (0,0)
-            pos_x = self.x_click
-            pos_y = self.y_click
-
-            # Map QFont onto MPL font
-            mpl_font = FontProperties()
-            mpl_font.set_size(int(extra_font.pointSize()))
-            mpl_font.set_family(str(extra_font.family()))
-            mpl_font.set_weight(int(extra_font.weight()))
-            # MPL style names
-            styles = ['normal', 'italic', 'oblique']
-            # QFont::Style maps directly onto the above
-            try:
-                mpl_font.set_style(styles[extra_font.style()])
-            except:
-                pass
-
-            if len(extra_text) > 0:
-                new_text = self.ax.text(str(pos_x),
-                                        str(pos_y),
-                                        extra_text,
-                                        color=extra_color,
-                                        fontproperties=mpl_font)
-                # Update the list of annotations
-                self.textList.append(new_text)
-                self.canvas.draw_idle()
-                pass
+        if self.addText.exec_() != QtWidgets.QDialog.Accepted:
+            return
+
+        # Retrieve the new text, its font and color
+        extra_text = self.addText.text()
+        extra_font = self.addText.font()
+        extra_color = self.addText.color()
+
+        # Place the text on the screen at the click location
+        pos_x = self.x_click
+        pos_y = self.y_click
+
+        # Map QFont onto MPL font
+        mpl_font = FontProperties()
+        mpl_font.set_size(int(extra_font.pointSize()))
+        mpl_font.set_family(str(extra_font.family()))
+        mpl_font.set_weight(int(extra_font.weight()))
+        # MPL style names
+        styles = ['normal', 'italic', 'oblique']
+        # QFont::Style maps directly onto the above
+        try:
+            mpl_font.set_style(styles[extra_font.style()])
+        except:
+            pass
+
+        if len(extra_text) > 0:
+            new_text = self.ax.text(pos_x,
+                                    pos_y,
+                                    extra_text,
+                                    color=extra_color,
+                                    fontproperties=mpl_font)
+
+            # Update the list of annotations
+            self.textList.append(new_text)
+            self.canvas.draw()
 
     def onRemoveText(self):
@@ -325,5 +327,9 @@
         txt = self.textList[num_text - 1]
         text_remove = txt.get_text()
-        txt.remove()
+        try:
+            txt.remove()
+        except ValueError:
+            # Text got already deleted somehow
+            pass
         self.textList.remove(txt)
 
Index: src/sas/qtgui/Plotting/PlotterBase.py
===================================================================
--- src/sas/qtgui/Plotting/PlotterBase.py	(revision 8f83719fd67e6a72acdcd666e7bf1e2326b52cd0)
+++ src/sas/qtgui/Plotting/PlotterBase.py	(revision eb1a386ba445241493784066d14c478c418cd3c6)
@@ -6,9 +6,4 @@
 from PyQt5 import QtWidgets, QtPrintSupport
 
-# TODO: Replace the qt4agg calls below with qt5 equivalent.
-# Requires some code modifications.
-# https://www.boxcontrol.net/embedding-matplotlib-plot-on-pyqt5-gui.html
-#
-# matplotlib.use("Qt5Agg")
 from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
 from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar
@@ -36,5 +31,5 @@
 
         #plt.style.use('ggplot')
-        plt.style.use('seaborn-darkgrid')
+        #plt.style.use('seaborn-darkgrid')
 
         # a figure instance to plot on
@@ -176,4 +171,5 @@
     def xscale(self, scale='linear'):
         """ X-axis scale setter """
+        self.ax.cla()
         self.ax.set_xscale(scale)
         self._xscale = scale
