diff --git a/MantidPlot/src/Convolution.cpp b/MantidPlot/src/Convolution.cpp
index fbbab201a7cf0981b88d3039e119b0df957a26cf..fad8a7afa63fb54e44c1c3953e164f2c672a7bf2 100644
--- a/MantidPlot/src/Convolution.cpp
+++ b/MantidPlot/src/Convolution.cpp
@@ -151,7 +151,7 @@ void Convolution::addResultCurve()
 		d_table->setText(i, cols2, locale.toString(d_x[i], 'g', app->d_decimal_digits));
 	}
 
-	QStringList l = d_table->colNames().grep(tr("Index"));
+	QStringList l = d_table->colNames().filter(tr("Index"));
 	QString id = QString::number((int)l.size()+1);
 	QString label = objectName() + id;
 
diff --git a/MantidPlot/src/Correlation.cpp b/MantidPlot/src/Correlation.cpp
index b47c943aed9e22bbe8496499c372a1e04f1dfd48..57d6e36cb3958daec473f1b5d7176f1241fe229b 100644
--- a/MantidPlot/src/Correlation.cpp
+++ b/MantidPlot/src/Correlation.cpp
@@ -167,7 +167,7 @@ void Correlation::addResultCurve()
 		d_table->setText(i, cols2, locale.toString(y, 'g', app->d_decimal_digits));
 	}
 
-	QStringList l = d_table->colNames().grep(tr("Lag"));
+	QStringList l = d_table->colNames().filter(tr("Lag"));
 	QString id = QString::number((int)l.size()+1);
 	QString label = objectName() + id;
 
diff --git a/MantidPlot/src/CurveRangeDialog.cpp b/MantidPlot/src/CurveRangeDialog.cpp
index 8a2b2e5f1a1d31063bdbb24b0327a93e2c9474e4..c997714f0b6fa5e23998f1b8952169f2c3a3ace0 100644
--- a/MantidPlot/src/CurveRangeDialog.cpp
+++ b/MantidPlot/src/CurveRangeDialog.cpp
@@ -42,7 +42,7 @@ CurveRangeDialog::CurveRangeDialog(QWidget* parent, Qt::WFlags fl )
   : QDialog( parent, fl ), d_curve(NULL), d_graph(NULL)
 {
     setWindowTitle(tr("MantidPlot - Plot range"));
-    setName( "CurveRangeDialog" );
+    setObjectName( "CurveRangeDialog" );
 
     QGroupBox *gb1 = new QGroupBox();
     QGridLayout *gl1 = new QGridLayout(gb1);
@@ -53,12 +53,12 @@ CurveRangeDialog::CurveRangeDialog(QWidget* parent, Qt::WFlags fl )
 
     gl1->addWidget(new QLabel(tr("From row number")), 1, 0);
     boxStart = new QSpinBox();
-    boxStart->setMinValue(1);
+    boxStart->setMinimum(1);
     gl1->addWidget(boxStart, 1, 1);
 
     gl1->addWidget(new QLabel(tr("To row number")), 2, 0);
     boxEnd = new QSpinBox();
-    boxEnd->setMinValue(1);
+    boxEnd->setMinimum(1);
     gl1->addWidget(boxEnd, 2, 1);
     gl1->setRowStretch(3, 1);
 
@@ -105,8 +105,8 @@ void CurveRangeDialog::setCurveToModify(Graph *g, int curve)
     Table *t = d_curve->table();
 	if (t)
 	{
-		boxStart->setMaxValue(t->numRows());
-		boxEnd->setMaxValue(t->numRows());
+		boxStart->setMaximum(t->numRows());
+		boxEnd->setMaximum(t->numRows());
 	}
 
 	boxName->setText(d_curve->title().text());
diff --git a/MantidPlot/src/CurvesDialog.cpp b/MantidPlot/src/CurvesDialog.cpp
index 83663a1d5ec26db5201e39558fd1c6d45903daee..3e6c042a6c536d1adb2b3d7c8281289502098421 100644
--- a/MantidPlot/src/CurvesDialog.cpp
+++ b/MantidPlot/src/CurvesDialog.cpp
@@ -60,7 +60,7 @@ CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl )
   if (!app) {
     throw std::logic_error("Null ApplicationWindow pointer is passed to CurvesDialog.");
   }
-  setName( "CurvesDialog" );
+  setObjectName( "CurvesDialog" );
   setWindowTitle( tr( "MantidPlot - Add/Remove curves" ) );
   setSizeGripEnabled(true);
   setFocus();
@@ -101,14 +101,14 @@ CurvesDialog::CurvesDialog( ApplicationWindow* app, Graph* g, Qt::WFlags fl )
   //add button (move to graph contents)
   QVBoxLayout* vl1 = new QVBoxLayout();
   btnAdd = new QPushButton();
-  btnAdd->setPixmap( getQPixmap("next_xpm") );
+  btnAdd->setIcon( getQPixmap("next_xpm") );
   btnAdd->setFixedWidth (35);
   btnAdd->setFixedHeight (30);
   vl1->addWidget(btnAdd);
 
   //remove button (move to available data)
   btnRemove = new QPushButton();
-  btnRemove->setPixmap( getQPixmap("prev_xpm") );
+  btnRemove->setIcon( getQPixmap("prev_xpm") );
   btnRemove->setFixedWidth (35);
   btnRemove->setFixedHeight(30);
   vl1->addWidget(btnRemove);
@@ -261,9 +261,9 @@ void CurvesDialog::contextMenuEvent(QContextMenuEvent *e)
     QMenu contextMenu(this);
     QList<QListWidgetItem *> lst = available->selectedItems();
     if (lst.size() > 1)
-      contextMenu.insertItem(tr("&Plot Selection"), this, SLOT(addCurves()));
+      contextMenu.addAction(tr("&Plot Selection"), this, SLOT(addCurves()));
     else if (lst.size() == 1)
-      contextMenu.insertItem(tr("&Plot"), this, SLOT(addCurves()));
+      contextMenu.addAction(tr("&Plot"), this, SLOT(addCurves()));
     contextMenu.exec(QCursor::pos());
   }
 
@@ -275,9 +275,9 @@ void CurvesDialog::contextMenuEvent(QContextMenuEvent *e)
     QList<QListWidgetItem *> lst = contents->selectedItems();
     
 	if (lst.size() > 1)
-      contextMenu.insertItem(tr("&Delete Selection"), this, SLOT(removeCurves()));
+      contextMenu.addAction(tr("&Delete Selection"), this, SLOT(removeCurves()));
     else if (lst.size() > 0)
-      contextMenu.insertItem(tr("&Delete Curve"), this, SLOT(removeCurves()));
+      contextMenu.addAction(tr("&Delete Curve"), this, SLOT(removeCurves()));
     contextMenu.exec(QCursor::pos());
   }
   e->accept();
@@ -298,25 +298,25 @@ void CurvesDialog::init()
 
   int style = d_app->defaultCurveStyle;
   if (style == Graph::Line)
-    boxStyle->setCurrentItem(0);
+    boxStyle->setCurrentIndex(0);
   else if (style == Graph::Scatter)
-    boxStyle->setCurrentItem(1);
+    boxStyle->setCurrentIndex(1);
   else if (style == Graph::LineSymbols)
-    boxStyle->setCurrentItem(2);
+    boxStyle->setCurrentIndex(2);
   else if (style == Graph::VerticalDropLines)
-    boxStyle->setCurrentItem(3);
+    boxStyle->setCurrentIndex(3);
   else if (style == Graph::Spline)
-    boxStyle->setCurrentItem(4);
+    boxStyle->setCurrentIndex(4);
   else if (style == Graph::VerticalSteps)
-    boxStyle->setCurrentItem(5);
+    boxStyle->setCurrentIndex(5);
   else if (style == Graph::HorizontalSteps)
-    boxStyle->setCurrentItem(6);
+    boxStyle->setCurrentIndex(6);
   else if (style == Graph::Area)
-    boxStyle->setCurrentItem(7);
+    boxStyle->setCurrentIndex(7);
   else if (style == Graph::VerticalBars)
-    boxStyle->setCurrentItem(8);
+    boxStyle->setCurrentIndex(8);
   else if (style == Graph::HorizontalBars)
-    boxStyle->setCurrentItem(9);
+    boxStyle->setCurrentIndex(9);
 
   QList<MdiSubWindow *> wList = d_app->windowsList();
   foreach(MdiSubWindow* w, wList)
@@ -509,7 +509,7 @@ void CurvesDialog::enableBtnOK(){
 int CurvesDialog::curveStyle()
 {
   int style = 0;
-  switch (boxStyle->currentItem())
+  switch (boxStyle->currentIndex())
   {
  case 0:
     style = Graph::Line;
diff --git a/MantidPlot/src/CustomActionDialog.cpp b/MantidPlot/src/CustomActionDialog.cpp
index 8b779deb8ec2a2fb4978b0b5a1439b5d8ba7b504..51cedbdcd84edfce398f99427cff5bbce4e79681 100644
--- a/MantidPlot/src/CustomActionDialog.cpp
+++ b/MantidPlot/src/CustomActionDialog.cpp
@@ -543,7 +543,7 @@ void CustomActionDialog::setCurrentAction(int row)
 	if (!w)
 		return;
 
-	if (w->isA("QToolBar")){
+	if (qstrcmp("QToolBar", w->metaObject()->className()) == 0){
       int index = toolBarBox->findText((dynamic_cast<QToolBar*>(w))->windowTitle());
     	if (index >= 0){
         	toolBarBox->setCurrentIndex(index);
diff --git a/MantidPlot/src/ErrDialog.cpp b/MantidPlot/src/ErrDialog.cpp
index de2a40b79a205079f0b3e85185c1bb5e0469a833..191fc03960b69c65eb71b55c9f64bc23d5f27704 100644
--- a/MantidPlot/src/ErrDialog.cpp
+++ b/MantidPlot/src/ErrDialog.cpp
@@ -174,7 +174,7 @@ void ErrDialog::setSrcTables(QList<MdiSubWindow *> tables)
   tableNamesBox->clear();
 
   foreach(MdiSubWindow *w, tables)
-    tableNamesBox->insertItem(w->objectName());
+    tableNamesBox->addItem(w->objectName());
 
   if (!nameLabel->currentText().contains("="))
     tableNamesBox->setCurrentIndex(tableNamesBox->findText(nameLabel->currentText().split("_", QString::SkipEmptyParts)[0]));
diff --git a/MantidPlot/src/ExpDecayDialog.cpp b/MantidPlot/src/ExpDecayDialog.cpp
index c63834d6443ac028105d5bf23bf16d300bb17142..2fdc7427aa8d7e7c76b0620c0a23c452e453b9b9 100644
--- a/MantidPlot/src/ExpDecayDialog.cpp
+++ b/MantidPlot/src/ExpDecayDialog.cpp
@@ -47,7 +47,7 @@ ExpDecayDialog::ExpDecayDialog(int type, QWidget* parent, Qt::WFlags fl )
     boxFirst(NULL), boxSecond(NULL), boxThird(NULL), boxStart(NULL), boxYOffset(NULL),
     thirdLabel(NULL), dampingLabel(NULL), boxColor(NULL)
 {
-    setName( "ExpDecayDialog" );
+    setObjectName( "ExpDecayDialog" );
 
 	slopes = type;
 
@@ -155,7 +155,7 @@ void ExpDecayDialog::setGraph(Graph *g)
 	if (!selectedCurve.isEmpty())
 	{
 	    int index = boxName->findText (selectedCurve);
-		boxName->setCurrentItem(index);
+		boxName->setCurrentIndex(index);
 	}
     activateCurve(boxName->currentText());
 
@@ -236,7 +236,7 @@ void ExpDecayDialog::fit()
 
   	if (fitter->setDataFromCurve(boxName->currentText(), boxStart->text().toDouble(), c->maxXValue()))
 	{
-		fitter->setColor(boxColor->currentItem());
+		fitter->setColor(boxColor->currentIndex());
 		fitter->scaleErrors(app->fit_scale_errors);
         fitter->setOutputPrecision(app->fit_output_precision);
 		fitter->generateFunction(app->generateUniformFitPoints, app->fitPoints);
diff --git a/MantidPlot/src/ExportDialog.cpp b/MantidPlot/src/ExportDialog.cpp
index efa532d3a4757872af0deacc7322027007393b00..2baddf77b25be05b7399441bb56396d513328db1 100644
--- a/MantidPlot/src/ExportDialog.cpp
+++ b/MantidPlot/src/ExportDialog.cpp
@@ -223,9 +223,9 @@ void ExportDialog::updateOptions(const QString & name)
 
     boxComments->setEnabled(w->inherits("Table"));
     boxNames->setEnabled(w->inherits("Table"));
-	boxSelection->setEnabled(!w->isA("MantidMatrix"));
-	boxSeparator->setEnabled(!w->isA("MantidMatrix"));
-	boxAllTables->setEnabled(!w->isA("MantidMatrix"));
-	sepText->setEnabled(!w->isA("MantidMatrix"));
+	boxSelection->setEnabled(qstrcmp("MantidMatrix", w->metaObject()->className()) != 0);
+	boxSeparator->setEnabled(qstrcmp("MantidMatrix", w->metaObject()->className()) != 0);
+	boxAllTables->setEnabled(qstrcmp("MantidMatrix", w->metaObject()->className()) != 0);
+	sepText->setEnabled(qstrcmp("MantidMatrix", w->metaObject()->className()) != 0);
 
 }
diff --git a/MantidPlot/src/FFTDialog.cpp b/MantidPlot/src/FFTDialog.cpp
index 7a6193e7d78ba8d5695719b5d2fa26fa5c97e335..dbf5567e3bbe88f8afdbf3def04a1aef8d61c4e8 100644
--- a/MantidPlot/src/FFTDialog.cpp
+++ b/MantidPlot/src/FFTDialog.cpp
@@ -153,7 +153,7 @@ void FFTDialog::accept()
 	try
 	{
 		MyParser parser;
-		parser.SetExpr(boxSampling->text().ascii());
+		parser.SetExpr(boxSampling->text().toAscii().constData());
 		sampling=parser.Eval();
 	}
 	catch(mu::ParserError &e)
@@ -193,7 +193,7 @@ void FFTDialog::accept()
 void FFTDialog::setGraph(Graph *g)
 {
 	graph = g;
-	boxName->insertStringList (g->analysableCurvesList());
+	boxName->insertItems (-1, g->analysableCurvesList());
 	activateCurve(boxName->currentText());
 }
 
@@ -217,13 +217,13 @@ void FFTDialog::setTable(Table *t)
 {
 	d_table = t;
 	QStringList l = t->columnsList();
-	boxName->insertStringList (l);
-	boxReal->insertStringList (l);
-	boxImaginary->insertStringList (l);
+	boxName->insertItems (-1, l);
+	boxReal->insertItems (-1, l);
+	boxImaginary->insertItems (-1, l);
 
 	int xcol = t->firstXCol();
 	if (xcol >= 0){
-		boxName->setCurrentItem(xcol);
+		boxName->setCurrentIndex(xcol);
 
 		double x0 = t->text(0, xcol).toDouble();
 		double x1 = t->text(1, xcol).toDouble();
@@ -233,14 +233,14 @@ void FFTDialog::setTable(Table *t)
 	l = t->selectedColumns();
 	int selected = (int)l.size();
 	if (!selected){
-		boxReal->setCurrentText(QString());
-		boxImaginary->setCurrentText(QString());
+		boxReal->setItemText(boxReal->currentIndex(), QString());
+		boxImaginary->setItemText(boxImaginary->currentIndex(), QString());
 	} else if (selected == 1) {
-		boxReal->setCurrentItem(t->colIndex(l[0]));
-		boxImaginary->setCurrentText(QString());
+		boxReal->setCurrentIndex(t->colIndex(l[0]));
+		boxImaginary->setItemText(boxImaginary->currentIndex(), QString());
 	} else {
-		boxReal->setCurrentItem(t->colIndex(l[0]));
-		boxImaginary->setCurrentItem(t->colIndex(l[1]));
+		boxReal->setCurrentIndex(t->colIndex(l[0]));
+		boxImaginary->setCurrentIndex(t->colIndex(l[1]));
 	}
 }
 
diff --git a/MantidPlot/src/Filter.cpp b/MantidPlot/src/Filter.cpp
index 16d5c7c92f6d9bdb8cf9a52f8e9c98bb8b6fe475..02bf7f1a7dbba50d8a2865e3361ef35a1e7664ac 100644
--- a/MantidPlot/src/Filter.cpp
+++ b/MantidPlot/src/Filter.cpp
@@ -50,7 +50,7 @@ Filter::Filter( ApplicationWindow *parent, Graph *g, const QString& name)
 }
 
 Filter::Filter( ApplicationWindow *parent, Table *t, const QString& name)
-: QObject( parent, name)
+: QObject( parent)
 {
 	init();
 	setObjectName(name);
diff --git a/MantidPlot/src/FilterDialog.cpp b/MantidPlot/src/FilterDialog.cpp
index 0698f42d379b74989de70c8086ea95b7b3e0a216..c5db27c063a5403a4eba0ef6dd3bc7ae3c3b26ae 100644
--- a/MantidPlot/src/FilterDialog.cpp
+++ b/MantidPlot/src/FilterDialog.cpp
@@ -48,7 +48,7 @@ FilterDialog::FilterDialog(int type, QWidget* parent, Qt::WFlags fl )
     setWindowTitle(tr("MantidPlot - Filter options"));
     filter_type = type;
 
-    setName( "FilterDialog" );
+    setObjectName( "FilterDialog" );
 
     QGroupBox *gb1 = new QGroupBox();
     QGridLayout *gl1 = new QGridLayout(gb1);
@@ -118,7 +118,7 @@ double from = 0.0, to = 0.0;
 try
 	{
 	MyParser parser;
-	parser.SetExpr(boxStart->text().replace(",", ".").ascii());
+	parser.SetExpr(boxStart->text().replace(",", ".").toAscii().constData());
 	from = parser.Eval();
 	}
 catch(mu::ParserError &e)
@@ -141,7 +141,7 @@ if (filter_type >= FFTFilter::BandPass)
 	try
 		{
 		MyParser parser;
-		parser.SetExpr(boxEnd->text().replace(",", ".").ascii());
+		parser.SetExpr(boxEnd->text().replace(",", ".").toAscii().constData());
 		to=parser.Eval();
 		}
 	catch(mu::ParserError &e)
diff --git a/MantidPlot/src/Fit.cpp b/MantidPlot/src/Fit.cpp
index 93ee8607633a36d6ad52c1a0fde066be757abc3d..415a001110f3eb61bcfcfc748b5794d7a947b80a 100644
--- a/MantidPlot/src/Fit.cpp
+++ b/MantidPlot/src/Fit.cpp
@@ -632,9 +632,9 @@ void Fit::fit() {
 
   QApplication::setOverrideCursor(Qt::WaitCursor);
 
-  const char *function = d_formula.ascii();
+  const char *function = d_formula.toAscii().constData();
   QString names = d_param_names.join(",");
-  const char *parNames = names.ascii();
+  const char *parNames = names.toAscii().constData();
 
   struct FitData d_data = {static_cast<size_t>(d_n),
                            static_cast<size_t>(d_p),
diff --git a/MantidPlot/src/FitDialog.cpp b/MantidPlot/src/FitDialog.cpp
index 6a3ba1023b90aa8e1b920e2f893caf3939297cf8..8025227c5057e0ce518375d66c89aca7aa37041d 100644
--- a/MantidPlot/src/FitDialog.cpp
+++ b/MantidPlot/src/FitDialog.cpp
@@ -296,7 +296,7 @@ void FitDialog::initEditPage()
     hbox1->addWidget(polynomOrderLabel);
 
 	polynomOrderBox = new QSpinBox();
-    polynomOrderBox->setMinValue(1);
+    polynomOrderBox->setMinimum(1);
 	polynomOrderBox->setValue(1);
 	polynomOrderBox->hide();
 	connect(polynomOrderBox, SIGNAL(valueChanged(int)), this, SLOT(setNumPeaks(int)));
@@ -322,7 +322,7 @@ void FitDialog::initEditPage()
     gb->setLayout(gl2);
 
 	editBox = new QTextEdit();
-	editBox->setTextFormat(Qt::PlainText);
+	//editBox->setTextFormat(Qt::PlainText);
 	editBox->setFocus();
 
     QVBoxLayout *vbox1 = new QVBoxLayout();
@@ -474,34 +474,37 @@ void FitDialog::initAdvancedPage()
 	connect(buttonCancel3, SIGNAL(clicked()), this, SLOT(close()));
 }
 
-void FitDialog::applyChanges()
-{
-	ApplicationWindow *app = dynamic_cast<ApplicationWindow *>(this->parent());
+void FitDialog::applyChanges() {
+  ApplicationWindow *app = dynamic_cast<ApplicationWindow *>(this->parent());
   if (!app) {
-    throw std::logic_error("Parent of FitDialog is not ApplicationWindow as expected.");
+    throw std::logic_error(
+        "Parent of FitDialog is not ApplicationWindow as expected.");
   }
-	int prec = boxPrecision->value();
-	app->fit_output_precision = prec;
-  if (!d_current_fit) return;
+  int prec = boxPrecision->value();
+  app->fit_output_precision = prec;
+  if (!d_current_fit)
+    return;
 
-	d_current_fit->setOutputPrecision(prec);
-	for (int i=0; i<boxParams->rowCount(); i++){
+  d_current_fit->setOutputPrecision(prec);
+  for (int i = 0; i < boxParams->rowCount(); i++) {
     boxParams_cellWidget<DoubleSpinBox>(i, 2)->setDecimals(prec);
-		if (d_current_fit->type() != Fit::BuiltIn){
+    if (d_current_fit->type() != Fit::BuiltIn) {
       boxParams_cellWidget<RangeLimitBox>(i, 1)->setDecimals(prec);
       boxParams_cellWidget<RangeLimitBox>(i, 3)->setDecimals(prec);
-		}
-	}
+    }
+  }
 
-	app->pasteFitResultsToPlot = plotLabelBox->isChecked();
-	app->writeFitResultsToLog = logBox->isChecked();
-	app->fitPoints = generatePointsBox->value();
-	app->generateUniformFitPoints = generatePointsBtn->isChecked();
-	if (d_current_fit && !d_current_fit->isA("PolynomialFit") && 
-		!d_current_fit->isA("LinearFit") && !d_current_fit->isA("LinearSlopeFit"))
-		app->fit_scale_errors = scaleErrorsBox->isChecked();
-	app->saveSettings();
-	btnApply->setEnabled(false);
+  app->pasteFitResultsToPlot = plotLabelBox->isChecked();
+  app->writeFitResultsToLog = logBox->isChecked();
+  app->fitPoints = generatePointsBox->value();
+  app->generateUniformFitPoints = generatePointsBtn->isChecked();
+  if (d_current_fit &&
+      !(qstrcmp("PolynomialFit", d_current_fit->className()) == 0) &&
+      !(qstrcmp("LinearFit", d_current_fit->className()) == 0) &&
+      !(qstrcmp("LinearSlopeFit", d_current_fit->className()) == 0))
+    app->fit_scale_errors = scaleErrorsBox->isChecked();
+  app->saveSettings();
+  btnApply->setEnabled(false);
 }
 
 void FitDialog::showParametersTable()
@@ -563,7 +566,7 @@ void FitDialog::setGraph(Graph *g)
     QString selectedCurve = g->selectedCurveTitle();
 	if (!selectedCurve.isEmpty()){
 	    int index = boxCurve->findText (selectedCurve);
-		boxCurve->setCurrentItem(index);
+		boxCurve->setCurrentIndex(index);
 	}
     activateCurve(boxCurve->currentText());
 
@@ -587,7 +590,7 @@ void FitDialog::activateCurve(const QString& curveName)
 
 void FitDialog::saveUserFunction()
 {
-	if (editBox->text().isEmpty()){
+	if (editBox->toPlainText().isEmpty()){
 		QMessageBox::critical(this, tr("MantidPlot - Input function error"), tr("Please enter a valid function!"));
 		editBox->setFocus();
 		return;
@@ -611,7 +614,7 @@ void FitDialog::saveUserFunction()
 		return;
 	}
 
-	if (editBox->text().contains(boxName->text())){
+	if (editBox->toPlainText().contains(boxName->text())){
 		QMessageBox::critical(this, tr("MantidPlot - Input function error"),
 				tr("You can't define functions recursively!"));
 		editBox->setFocus();
@@ -620,9 +623,9 @@ void FitDialog::saveUserFunction()
 
 	QString name = boxName->text();
     QStringList lst = userFunctionNames();
-	QString formula = parseFormula(editBox->text().simplified());
+	QString formula = parseFormula(editBox->toPlainText().simplified());
 	if (lst.contains(name)){
-		int index = lst.findIndex(name);
+		int index = lst.indexOf(name);
     d_current_fit = dynamic_cast<NonLinearFit *>(d_user_functions[index]);
     if (d_current_fit) {
 		  d_current_fit->setParametersList(boxParam->text().split(QRegExp("[,;]+[\\s]*"), QString::SkipEmptyParts));
@@ -693,7 +696,7 @@ void FitDialog::removeUserFunction()
             d_user_functions.removeAt(index);
 		}
 
-        lst.remove(name);
+        lst.removeAll(name);
 		funcBox->clear();
 		funcBox->addItems(lst);
 		funcBox->setCurrentRow(0);
@@ -705,7 +708,7 @@ void FitDialog::removeUserFunction()
 
 void FitDialog::showFitPage()
 {
-	QString formula = editBox->text().simplified();
+	QString formula = editBox->toPlainText().simplified();
 	if (formula.isEmpty()){
 		QMessageBox::critical(this, tr("MantidPlot - Input function error"), tr("Please enter a valid function!"));
 		editBox->setFocus();
@@ -724,8 +727,9 @@ void FitDialog::showFitPage()
 		return;
 
     if (d_current_fit->type() == Fit::BuiltIn && 
-		(d_current_fit->isA("PolynomialFit") || d_current_fit->isA("LinearFit")
-		|| d_current_fit->isA("LinearSlopeFit"))){
+	(isOfType(d_current_fit, "PolynomialFit") ||
+	 isOfType(d_current_fit, "LinearFit") ||
+	 isOfType(d_current_fit, "LinearSlopeFit"))){
         btnParamRange->setEnabled(false);
         boxAlgorithm->setEnabled(false);
 		boxPoints->setEnabled(false);
@@ -813,8 +817,9 @@ void FitDialog::showEditPage()
 void FitDialog::showAdvancedPage()
 {
 	tw->setCurrentWidget (advancedPage);
-	if (d_current_fit && (d_current_fit->isA("PolynomialFit") || 
-		d_current_fit->isA("LinearFit") || d_current_fit->isA("LinearSlopeFit"))){
+	if (d_current_fit && (isOfType(d_current_fit,"PolynomialFit") ||
+			      isOfType(d_current_fit, "LinearFit") ||
+			      isOfType(d_current_fit, "LinearSlopeFit"))){
 		scaleErrorsBox->setChecked(false);
 		scaleErrorsBox->setEnabled(false);
 	} else {
@@ -837,7 +842,7 @@ void FitDialog::setFunction(bool ok)
 
 	if (ok){
 		boxName->setText(funcBox->currentItem()->text());
-		editBox->setText(explainBox->text());
+		editBox->setText(explainBox->toPlainText());
 		boxParam->setText(d_current_fit->parameterNames().join(", "));
 	}
 }
@@ -945,7 +950,7 @@ void FitDialog::loadPlugins()
 	    if (QLibrary::isLibrary (file)){
             QLibrary lib(path + file);
             PluginFit *fit = new PluginFit(app, d_graph);
-            fit->load(lib.library());
+            fit->load(lib.fileName());
             d_plugins << fit;
             names << fit->objectName();
             fit->setFileName(modelsDirPath + fit->objectName() + ".fit");
@@ -1008,16 +1013,16 @@ void FitDialog::showExpression(int function)
 
 void FitDialog::addFunction()
 {
-	QString f = explainBox->text();
+	QString f = explainBox->toPlainText();
 	if (categoryBox->currentRow() == 2){//basic parser function
-		f = f.left(f.find("(", 0)+1);
-		if (editBox->hasSelectedText()){
-			QString markedText=editBox->selectedText();
-			editBox->insert(f+markedText+")");
+		f = f.left(f.indexOf("(", 0)+1);
+		if (editBox->textCursor().hasSelection()){
+			QString markedText=editBox->textCursor().selectedText();
+			editBox->insertPlainText(f+markedText+")");
 		} else
-			editBox->insert(f+")");
+			editBox->insertPlainText(f+")");
 	}else
-		editBox->insert(f);
+		editBox->insertPlainText(f);
 
 	editBox->setFocus();
 }
@@ -1025,141 +1030,155 @@ void FitDialog::addFunction()
 void FitDialog::addFunctionName()
 {
 	if (funcBox->count() > 0){
-		editBox->insert(funcBox->currentItem()->text());
+		editBox->insertPlainText(funcBox->currentItem()->text());
 		editBox->setFocus();
 	}
 }
 
-void FitDialog::accept()
-{
-	ApplicationWindow *app = dynamic_cast<ApplicationWindow *>(this->parent());
+void FitDialog::accept() {
+  ApplicationWindow *app = dynamic_cast<ApplicationWindow *>(this->parent());
   if (!app) {
-    throw std::logic_error("Parent of FitDialog is not ApplicationWindow as expected.");
+    throw std::logic_error(
+        "Parent of FitDialog is not ApplicationWindow as expected.");
   }
 
-	QString curve = boxCurve->currentText();
-	QStringList curvesList = d_graph->curvesList();
-	if (!curvesList.contains(curve)){
-		QMessageBox::critical(app, tr("MantidPlot - Warning"),
-				tr("The curve <b> %1 </b> doesn't exist anymore! Operation aborted!").arg(curve));
-		boxCurve->clear();
-		boxCurve->addItems(curvesList);
-		return;
-	}
+  QString curve = boxCurve->currentText();
+  QStringList curvesList = d_graph->curvesList();
+  if (!curvesList.contains(curve)) {
+    QMessageBox::critical(
+        app, tr("MantidPlot - Warning"),
+        tr("The curve <b> %1 </b> doesn't exist anymore! Operation aborted!")
+            .arg(curve));
+    boxCurve->clear();
+    boxCurve->addItems(curvesList);
+    return;
+  }
 
-	double start = boxFrom->value();
-	double end = boxTo->value();
-	double eps = boxTolerance->value();
+  double start = boxFrom->value();
+  double end = boxTo->value();
+  double eps = boxTolerance->value();
 
-	if (start >= end){
-		QMessageBox::critical(app, tr("MantidPlot - Input error"),
-				tr("Please enter x limits that satisfy: from < end!"));
-		boxTo->setFocus();
-		return;
-	}
+  if (start >= end) {
+    QMessageBox::critical(
+        app, tr("MantidPlot - Input error"),
+        tr("Please enter x limits that satisfy: from < end!"));
+    boxTo->setFocus();
+    return;
+  }
 
-	int n = 0, rows = boxParams->rowCount();
-	if (!boxParams->isColumnHidden(4)){
-		for (int i=0; i<rows; i++){//count the non-constant parameters
+  int n = 0, rows = boxParams->rowCount();
+  if (!boxParams->isColumnHidden(4)) {
+    for (int i = 0; i < rows; i++) { // count the non-constant parameters
       QCheckBox *cb = boxParams_cellWidget<QCheckBox>(i, 4);
-			if (!cb->isChecked())
-				n++;
-		}
-	} else
-		n = rows;
-
-	QStringList parameters = QStringList();
-	MyParser parser;
-	bool error = false;
-	QVarLengthArray<double> paramsInit(n);
-	QString formula = boxFunction->text();
-	try {
-		if (!boxParams->isColumnHidden(4)){
-			int j = 0;
-			for (int i=0; i<rows; i++){
+      if (!cb->isChecked())
+        n++;
+    }
+  } else
+    n = rows;
+
+  QStringList parameters = QStringList();
+  MyParser parser;
+  bool error = false;
+  QVarLengthArray<double> paramsInit(n);
+  QString formula = boxFunction->toPlainText();
+  try {
+    if (!boxParams->isColumnHidden(4)) {
+      int j = 0;
+      for (int i = 0; i < rows; i++) {
         QCheckBox *cb = boxParams_cellWidget<QCheckBox>(i, 4);
-				if (!cb->isChecked()){
+        if (!cb->isChecked()) {
           paramsInit[j] = boxParams_cellWidget<DoubleSpinBox>(i, 2)->value();
-					parser.DefineVar(boxParams->item(i, 0)->text().ascii(), &paramsInit[j]);
-					parameters << boxParams->item(i, 0)->text();
+          parser.DefineVar(boxParams->item(i, 0)->text().toAscii().constData(),
+                           &paramsInit[j]);
+          parameters << boxParams->item(i, 0)->text();
 
-					if (d_current_fit->type() != Fit::BuiltIn){
+          if (d_current_fit->type() != Fit::BuiltIn) {
             double left = boxParams_cellWidget<RangeLimitBox>(j, 1)->value();
             double right = boxParams_cellWidget<RangeLimitBox>(j, 3)->value();
-						d_current_fit->setParameterRange(j, left, right);
-					}
-					j++;
-				} else {
+            d_current_fit->setParameterRange(j, left, right);
+          }
+          j++;
+        } else {
           double val = boxParams_cellWidget<DoubleSpinBox>(i, 2)->value();
-					formula.replace(boxParams->item(i, 0)->text(), QString::number(val, 'e', app->fit_output_precision));
-				}
-			}
-		} else {
-			for (int i=0; i<n; i++) {
+          formula.replace(boxParams->item(i, 0)->text(),
+                          QString::number(val, 'e', app->fit_output_precision));
+        }
+      }
+    } else {
+      for (int i = 0; i < n; i++) {
         paramsInit[i] = boxParams_cellWidget<DoubleSpinBox>(i, 2)->value();
-				parser.DefineVar(boxParams->item(i, 0)->text().ascii(), &paramsInit[i]);
-				parameters << boxParams->item(i, 0)->text();
+        parser.DefineVar(boxParams->item(i, 0)->text().toAscii().constData(),
+                         &paramsInit[i]);
+        parameters << boxParams->item(i, 0)->text();
 
-				if (d_current_fit->type() != Fit::BuiltIn){
+        if (d_current_fit->type() != Fit::BuiltIn) {
           double left = boxParams_cellWidget<RangeLimitBox>(i, 1)->value();
           double right = boxParams_cellWidget<RangeLimitBox>(i, 3)->value();
-					d_current_fit->setParameterRange(i, left, right);
-				}
-			}
-		}
+          d_current_fit->setParameterRange(i, left, right);
+        }
+      }
+    }
 
-		parser.SetExpr(formula.ascii());
-		double x = start;
-		parser.DefineVar("x", &x);
-		parser.Eval();
-	} catch(mu::ParserError &e) {
-		QString errorMsg = boxFunction->text() + " = " + formula + "\n" + QString::fromStdString(e.GetMsg()) + "\n" +
-			tr("Please verify that you have initialized all the parameters!");
-
-		QMessageBox::critical(app, tr("MantidPlot - Input function error"), errorMsg);
-		boxFunction->setFocus();
-		error = true;
-	}
+    parser.SetExpr(formula.toAscii().constData());
+    double x = start;
+    parser.DefineVar("x", &x);
+    parser.Eval();
+  } catch (mu::ParserError &e) {
+    QString errorMsg =
+        boxFunction->toPlainText() + " = " + formula + "\n" +
+        QString::fromStdString(e.GetMsg()) + "\n" +
+        tr("Please verify that you have initialized all the parameters!");
+
+    QMessageBox::critical(app, tr("MantidPlot - Input function error"),
+                          errorMsg);
+    boxFunction->setFocus();
+    error = true;
+  }
 
-	if (!error){
-		if (d_current_fit->type() == Fit::BuiltIn)
-			modifyGuesses (paramsInit.data());
-		if (d_current_fit->type() == Fit::User){
-			d_current_fit->setParametersList(parameters);
-			d_current_fit->setFormula(formula);
-		}
+  if (!error) {
+    if (d_current_fit->type() == Fit::BuiltIn)
+      modifyGuesses(paramsInit.data());
+    if (d_current_fit->type() == Fit::User) {
+      d_current_fit->setParametersList(parameters);
+      d_current_fit->setFormula(formula);
+    }
 
-		d_current_fit->setInitialGuesses(paramsInit.data());
-
-		if (!d_current_fit->setDataFromCurve(curve, start, end) ||
-			!d_current_fit->setWeightingData ((Fit::WeightingMethod)boxWeighting->currentIndex(),
-					       tableNamesBox->currentText()+"_"+colNamesBox->currentText())) return;
-
-		d_current_fit->setTolerance(eps);
-		d_current_fit->setOutputPrecision(app->fit_output_precision);
-		d_current_fit->setAlgorithm((Fit::Algorithm)boxAlgorithm->currentIndex());
-		d_current_fit->setColor(boxColor->currentIndex());
-		d_current_fit->generateFunction(generatePointsBtn->isChecked(), generatePointsBox->value());
-		d_current_fit->setMaximumIterations(boxPoints->value());
-		if (!d_current_fit->isA("PolynomialFit") && !d_current_fit->isA("LinearFit") && !d_current_fit->isA("LinearSlopeFit"))
-			d_current_fit->scaleErrors(scaleErrorsBox->isChecked());
-		d_current_fit->fit();
-		double *res = d_current_fit->results();
-		if (!boxParams->isColumnHidden(4)){
-			int j = 0;
-			for (int i=0; i<rows; i++){
-                QCheckBox *cb = boxParams_cellWidget<QCheckBox>(i, 4);
-				if (!cb->isChecked())
+    d_current_fit->setInitialGuesses(paramsInit.data());
+
+    if (!d_current_fit->setDataFromCurve(curve, start, end) ||
+        !d_current_fit->setWeightingData(
+            (Fit::WeightingMethod)boxWeighting->currentIndex(),
+            tableNamesBox->currentText() + "_" + colNamesBox->currentText()))
+      return;
+
+    d_current_fit->setTolerance(eps);
+    d_current_fit->setOutputPrecision(app->fit_output_precision);
+    d_current_fit->setAlgorithm((Fit::Algorithm)boxAlgorithm->currentIndex());
+    d_current_fit->setColor(boxColor->currentIndex());
+    d_current_fit->generateFunction(generatePointsBtn->isChecked(),
+                                    generatePointsBox->value());
+    d_current_fit->setMaximumIterations(boxPoints->value());
+    if (!isOfType(d_current_fit, "PolynomialFit") &&
+        !isOfType(d_current_fit, "LinearFit") &&
+        !isOfType(d_current_fit, "LinearSlopeFit"))
+      d_current_fit->scaleErrors(scaleErrorsBox->isChecked());
+    d_current_fit->fit();
+    double *res = d_current_fit->results();
+    if (!boxParams->isColumnHidden(4)) {
+      int j = 0;
+      for (int i = 0; i < rows; i++) {
+        QCheckBox *cb = boxParams_cellWidget<QCheckBox>(i, 4);
+        if (!cb->isChecked())
           boxParams_cellWidget<DoubleSpinBox>(i, 2)->setValue(res[j++]);
-			}
-		} else {
-			for (int i=0; i<rows; i++)
+      }
+    } else {
+      for (int i = 0; i < rows; i++)
         boxParams_cellWidget<DoubleSpinBox>(i, 2)->setValue(res[i]);
-		}
+    }
 
-		if (globalParamTableBox->isChecked() && d_param_table)
-			d_current_fit->writeParametersToTable(d_param_table, true);
-	}
+    if (globalParamTableBox->isChecked() && d_param_table)
+      d_current_fit->writeParametersToTable(d_param_table, true);
+  }
 }
 
 void FitDialog::modifyGuesses(double* initVal)
@@ -1495,6 +1514,10 @@ QString FitDialog::parseFormula(const QString& s)
 	return formula;
 }
 
+bool FitDialog::isOfType(const QObject *obj, const char *toCompare) const {
+  return strcmp(obj->metaObject()->className(), toCompare) == 0;
+}
+
 template<class Widget>
 Widget* FitDialog::boxParams_cellWidget(int i, int j) const {
   Widget *w = dynamic_cast<Widget*>(boxParams->cellWidget(i, j));
diff --git a/MantidPlot/src/FitDialog.h b/MantidPlot/src/FitDialog.h
index f36edf34f508d6079ec761f8057b7183b8b96e68..d4b845caea9dc695c08cfc3918a78e4cfc088bbe 100644
--- a/MantidPlot/src/FitDialog.h
+++ b/MantidPlot/src/FitDialog.h
@@ -107,8 +107,9 @@ private slots:
 	void showParameterRange(bool);
 
 private:
+	bool isOfType(const QObject *obj, const char *toCompare) const;
 	void loadPlugins();
-    void loadUserFunctions();
+	void loadUserFunctions();
 	void initBuiltInFunctions();
 	void modifyGuesses(double* initVal);
 	QStringList builtInFunctionNames();
diff --git a/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp b/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp
index ff72dfb951c80b987f846328cb4e574e0297e2b3..1f9f01f697d68bc0fb8204e7255da72c72ecb447 100644
--- a/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp
+++ b/MantidQt/SliceViewer/src/DimensionSliceWidget.cpp
@@ -131,9 +131,7 @@ void DimensionSliceWidget::setShownDim(int dim)
     if (ui.horizontalSpacer != NULL)
     {
       // Remove the 3rd item (if it's not gone already) = the spacer
-      auto it = QLayoutIterator(ui.horizontalLayout);
-      ++it; ++it; ++it;
-      ui.horizontalLayout->removeItem(it.current());
+      ui.horizontalLayout->removeItem(ui.horizontalLayout->itemAt(3));
       delete ui.horizontalSpacer;
       ui.horizontalSpacer = NULL;
     }