diff --git a/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp b/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp
index 1101ccb3f69f61d757615be1f2ca1c8866b0a6e0..bff1921b0d3b2081eb73aa813d5898f851058513 100644
--- a/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp
+++ b/Code/Mantid/MantidPlot/src/ApplicationWindow.cpp
@@ -4409,21 +4409,25 @@ void ApplicationWindow::importASCII(const QStringList& files, int import_mode, c
 
     if (w->inherits("Table")){
       Table *t = dynamic_cast<Table*>(w);
-      for (int i=0; i<files.size(); i++)
-        t->importASCII(files[i], local_column_separator, local_ignored_lines, local_rename_columns,
-            local_strip_spaces, local_simplify_spaces, local_import_comments,
-            local_comment_string, import_read_only, (Table::ImportMode)(import_mode - 2), endLineChar);
-
-      if (update_dec_separators)
-        t->updateDecimalSeparators(local_separators);
-      t->notifyChanges();
-      emit modifiedProject(t);
+      if (t) {
+        for (int i=0; i<files.size(); i++)
+          t->importASCII(files[i], local_column_separator, local_ignored_lines, local_rename_columns,
+              local_strip_spaces, local_simplify_spaces, local_import_comments,
+              local_comment_string, import_read_only, (Table::ImportMode)(import_mode - 2), endLineChar);
+
+        if (update_dec_separators)
+          t->updateDecimalSeparators(local_separators);
+        t->notifyChanges();
+        emit modifiedProject(t);
+      }
     } else if (w->isA("Matrix")){
       Matrix *m = dynamic_cast<Matrix*>(w);
-      for (int i=0; i<files.size(); i++){
-        m->importASCII(files[i], local_column_separator, local_ignored_lines,
-            local_strip_spaces, local_simplify_spaces, local_comment_string,
-            (Matrix::ImportMode)(import_mode - 2), local_separators, endLineChar);
+      if (m) {
+        for (int i=0; i<files.size(); i++){
+          m->importASCII(files[i], local_column_separator, local_ignored_lines,
+              local_strip_spaces, local_simplify_spaces, local_comment_string,
+              (Matrix::ImportMode)(import_mode - 2), local_separators, endLineChar);
+        }
       }
     }
     w->setWindowLabel(files.join("; "));
@@ -8651,8 +8655,11 @@ void ApplicationWindow::pasteSelection()
         return;
 
       if (g->activeTool()){
-        if (g->activeTool()->rtti() == PlotToolInterface::Rtti_RangeSelector)
-          dynamic_cast<RangeSelectorTool*>(g->activeTool())->pasteSelection();
+        if (g->activeTool()->rtti() == PlotToolInterface::Rtti_RangeSelector){
+          auto rst = dynamic_cast<RangeSelectorTool*>(g->activeTool());
+          if (rst)
+            rst->pasteSelection();
+        }
       } else if (d_text_copy){
         LegendWidget *t = g->insertText(d_text_copy);
         t->move(g->mapFromGlobal(QCursor::pos()));
@@ -9128,7 +9135,7 @@ void ApplicationWindow::minimizeWindow(MdiSubWindow *w)
 {
   auto wli = dynamic_cast<WindowListItem*>(lv->currentItem());
 
-  if (!w)
+  if (!wli)
     w = wli->window();
 
   if (!w)
@@ -10140,7 +10147,7 @@ QStringList ApplicationWindow::dependingPlots(const QString& name)
       foreach(Graph *g, layers){
         onPlot = g->curvesList();
         onPlot = onPlot.grep (name,TRUE);
-        if (static_cast<int>(onPlot.count()) && plots.contains(w->objectName())<=0)
+        if (static_cast<int>(onPlot.count()) && !plots.contains(w->objectName()))
           plots << w->objectName();
       }
     }else if (w->isA("Graph3D")){
@@ -14726,7 +14733,10 @@ void ApplicationWindow::showAllFolderWindows()
       break;
     lst = fld->windowsList();
     foreach(MdiSubWindow *w, lst){
-      if (w && show_windows_policy == SubFolders){
+      if(!w)
+        continue;
+
+      if (show_windows_policy == SubFolders) {
         updateWindowLists(w);
         switch (w->status())
         {