dlg.Destroy()
 
     def OnOtherColor(self, event):
-        dlg = wx.ColourDialog(frame)
+        dlg = wx.ColourDialog(self)
         dlg.GetColourData().SetChooseFull(True)
         if dlg.ShowModal() == wx.ID_OK:
             self.sketch.SetColor(dlg.GetColourData().GetColour())
 
     def OnSetColour(self, event):
         color = self.colorMap[event.GetId()]
-        if color != self.sketch.color:
+        if color != self.sketch.color and self.sketch.color in self.colorButtons:
             self.colorButtons[self.sketch.color].SetToggle(False)
         self.sketch.SetColor(color)