Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs	(revision 11097)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/DataGridContentView.cs	(revision 11098)
@@ -22,5 +22,4 @@
 using System;
 using System.Collections.Generic;
-using System.Drawing;
 using System.Linq;
 using System.Windows.Forms;
@@ -35,5 +34,4 @@
   public partial class DataGridContentView : StringConvertibleMatrixView {
 
-    private bool notOwnEvent = true;
     private bool isSearching = false;
     private bool updateOnMouseUp = false;
@@ -49,13 +47,4 @@
     }
 
-    private IList<int> _highlightedRowIndices;
-    public IList<int> HighlightedRowIndices {
-      get { return _highlightedRowIndices; }
-      set {
-        _highlightedRowIndices = value;
-        Refresh();
-      }
-    }
-
     private IDictionary<int, IList<int>> _highlightedCellsBackground;
     public IDictionary<int, IList<int>> HightlightedCellsBackground {
@@ -70,10 +59,8 @@
       InitializeComponent();
       dataGridView.CellMouseClick += dataGridView_CellMouseClick;
-      dataGridView.CellPainting += new System.Windows.Forms.DataGridViewCellPaintingEventHandler(dataGridView_CellPainting);
       dataGridView.KeyDown += dataGridView_KeyDown;
       dataGridView.MouseUp += dataGridView_MouseUp;
       dataGridView.ColumnHeaderMouseClick += dataGridView_ColumnHeaderMouseClick;
       contextMenuCell.Items.Add(ShowHideColumns);
-      _highlightedRowIndices = new List<int>();
       _highlightedCellsBackground = new Dictionary<int, IList<int>>();
       currentCell = null;
@@ -123,7 +110,5 @@
 
     private void Content_Changed(object sender, DataPreprocessingChangedEventArgs e) {
-      if (notOwnEvent) {
-        OnContentChanged();
-      }
+      OnContentChanged();
       searchIterator = null;
     }
@@ -131,34 +116,35 @@
     protected override void dataGridView_SelectionChanged(object sender, EventArgs e) {
       base.dataGridView_SelectionChanged(sender, e);
-      if (Content != null)
+      if (Content != null && dataGridView.RowCount != 0 && dataGridView.ColumnCount != 0)
         Content.Selection = GetSelectedCells();
     }
 
+    //couldn't use base.dataGridView_CellValidating as the values have to be validated per column individually
     protected override void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
-      if (!dataGridView.ReadOnly) {
-        string errorMessage;
-        if (Content != null) {
-          if (dataGridView.IsCurrentCellInEditMode && Content.FilterLogic.IsFiltered) {
-            errorMessage = "A filter is active, you cannot modify data. Press ESC to exit edit mode.";
-          } else {
-            Content.Validate(e.FormattedValue.ToString(), out errorMessage, e.ColumnIndex);
-          }
-
-          if (!String.IsNullOrEmpty(errorMessage)) {
-            e.Cancel = true;
-            dataGridView.Rows[e.RowIndex].ErrorText = errorMessage;
-          }
-        }
-      }
-    }
-
-    protected override void dataGridView_CellParsing(object sender, DataGridViewCellParsingEventArgs e) {
-      triggersOwnEvent(() => base.dataGridView_CellParsing(sender, e));
-    }
-
-    protected override void PasteValuesToDataGridView() {
-      triggersOwnEvent(() => base.PasteValuesToDataGridView());
-      dataGridView.Refresh();
-    }
+      if (dataGridView.ReadOnly) return;
+      if (Content == null) return;
+      if (Content.Rows == 0 || Content.Columns == 0) return;
+
+      string errorMessage;
+      if (Content != null) {
+        if (dataGridView.IsCurrentCellInEditMode && Content.FilterLogic.IsFiltered) {
+          errorMessage = "A filter is active, you cannot modify data. Press ESC to exit edit mode.";
+        } else {
+          Content.Validate(e.FormattedValue.ToString(), out errorMessage, e.ColumnIndex);
+        }
+
+        if (!String.IsNullOrEmpty(errorMessage)) {
+          e.Cancel = true;
+          dataGridView.Rows[e.RowIndex].ErrorText = errorMessage;
+        }
+
+      }
+    }
+
+
+    //protected override void PasteValuesToDataGridView() {
+    //  base.PasteValuesToDataGridView();
+    //  dataGridView.Refresh();
+    //}
 
     protected override void SetEnabledStateOfControls() {
@@ -191,14 +177,6 @@
 
     private void btnApplySort_Click(object sender, System.EventArgs e) {
-      triggersOwnEvent(() => {
-        Content.ManipulationLogic.ReOrderToIndices(virtualRowIndices);
-        OnContentChanged();
-      });
-    }
-
-    private void triggersOwnEvent(Action action) {
-      notOwnEvent = false;
-      action();
-      notOwnEvent = true;
+      Content.ManipulationLogic.ReOrderToIndices(virtualRowIndices);
+      OnContentChanged();
     }
 
@@ -494,38 +472,4 @@
     }
 
-    protected void dataGridView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) {
-      if (Content == null) return;
-      if (e.RowIndex < 0) return;
-      if (e.ColumnIndex < 0) return;
-      if (e.State.HasFlag(DataGridViewElementStates.Selected)) return;
-      if (!e.PaintParts.HasFlag(DataGridViewPaintParts.Background)) return;
-      if (HighlightedRowIndices == null) return;
-
-      int rowIndex = virtualRowIndices[e.RowIndex];
-
-      Color backColor = e.CellStyle.BackColor;
-
-      if (HightlightedCellsBackground.ContainsKey(e.ColumnIndex) && HightlightedCellsBackground[e.ColumnIndex].Contains(e.RowIndex)) {
-        backColor = Color.LightGray;
-      }
-
-      using (Brush backColorBrush = new SolidBrush(backColor)) {
-        Rectangle bounds = new Rectangle(e.CellBounds.X, e.CellBounds.Y, e.CellBounds.Width, e.CellBounds.Height);
-        e.Graphics.FillRectangle(backColorBrush, bounds);
-      }
-
-      using (Brush gridBrush = new SolidBrush(Color.LightGray)) {
-        Pen gridLinePen = new Pen(gridBrush);
-        e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left,
-               e.CellBounds.Bottom - 1, e.CellBounds.Right - 1,
-               e.CellBounds.Bottom - 1);
-        e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right - 1,
-            e.CellBounds.Top, e.CellBounds.Right - 1,
-            e.CellBounds.Bottom);
-      }
-      e.PaintContent(e.CellBounds);
-      e.Handled = true;
-    }
-
     private void dataGridView_KeyDown(object sender, KeyEventArgs e) {
       var selectedRows = dataGridView.SelectedRows;
@@ -535,8 +479,5 @@
           rows.Add(selectedRows[i].Index);
         }
-        triggersOwnEvent(() => {
-          Content.DeleteRow(rows);
-          OnContentChanged();
-        });
+        Content.DeleteRow(rows);
       } else if (e.Control && e.KeyCode == Keys.F) {
         CreateFindAndReplaceDialog();
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.cs	(revision 11097)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/HistogramView.cs	(revision 11098)
@@ -40,5 +40,4 @@
       base.OnContentChanged();
       if (Content != null) {
-
         classifierComboBox.Items.Clear();
         classifierComboBox.Items.Add("None");
@@ -47,5 +46,4 @@
           classifierComboBox.Items.Add(var);
         }
-
 
         if (classifierComboBox.SelectedItem == null && Content.ClassifierVariableIndex < classifierComboBox.Items.Count) {
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.cs	(revision 11097)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.4/PreprocessingChartView.cs	(revision 11098)
@@ -263,5 +263,4 @@
 
     protected void GenerateChart() {
-
       ClearTableLayout();
       if (Content.AllInOneMode) {
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransactionalPreprocessingData.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransactionalPreprocessingData.cs	(revision 11097)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/Implementations/TransactionalPreprocessingData.cs	(revision 11098)
@@ -212,7 +212,12 @@
 
     public override void DeleteRowsWithIndices(IEnumerable<int> rows) {
-      foreach (int rowIndex in rows) {
-        DeleteRow(rowIndex);
-      }
+      SaveSnapshot(DataPreprocessingChangedEventType.AddRow, -1, -1);
+      foreach (int rowIndex in rows.OrderByDescending(x => x)) {
+        foreach (IList column in variableValues) {
+          column.RemoveAt(rowIndex);
+        }
+      }
+      if (!IsInTransaction)
+        OnChanged(DataPreprocessingChangedEventType.DeleteRow, -1, -1);
     }
 
Index: /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/ProblemDataCreator.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/ProblemDataCreator.cs	(revision 11097)
+++ /branches/DataPreprocessing/HeuristicLab.DataPreprocessing/3.4/ProblemDataCreator.cs	(revision 11098)
@@ -42,6 +42,7 @@
 
     public IDataAnalysisProblemData CreateProblemData() {
+      if (context.Data.Rows == 0 || context.Data.Columns == 0) return null;
+
       var oldProblemData = context.ProblemData;
-
       IDataAnalysisProblemData problemData;
 
Index: /branches/DataPreprocessing/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj	(revision 11097)
+++ /branches/DataPreprocessing/HeuristicLab.MainForm.WindowsForms/3.3/HeuristicLab.MainForm.WindowsForms-3.3.csproj	(revision 11098)
@@ -159,7 +159,5 @@
     <None Include="Plugin.cs.frame" />
     <Compile Include="Controls\ControlExtensions.cs" />
-    <Compile Include="MainForms\DockForm.cs">
-      <SubType>Form</SubType>
-    </Compile>
+    <Compile Include="MainForms\DockForm.cs" />
     <Compile Include="MainForms\DockForm.Designer.cs">
       <DependentUpon>DockForm.cs</DependentUpon>
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/SymbolicRegressionSolutionView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/SymbolicRegressionSolutionView.cs	(revision 11097)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression.Views/3.4/SymbolicRegressionSolutionView.cs	(revision 11098)
@@ -22,4 +22,5 @@
 using System;
 using System.ComponentModel;
+using System.Linq;
 using System.Windows.Forms;
 using HeuristicLab.MainForm;
@@ -44,5 +45,5 @@
       btnSimplify.Enabled = Content != null && !Locked;
       exportButton.Enabled = Content != null && !Locked;
-      transformModelButton.Visible = false;
+      transformModelButton.Visible = Content != null && Content.ProblemData.Transformations.Any();
       transformModelButton.Enabled = Content != null && !Locked;
     }
Index: /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/AbstractFeatureCorrelationView.cs
===================================================================
--- /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/AbstractFeatureCorrelationView.cs	(revision 11097)
+++ /branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Views/3.4/FeatureCorrelation/AbstractFeatureCorrelationView.cs	(revision 11098)
@@ -57,4 +57,5 @@
       partitionComboBox.DataSource = Partitions;
       partitionComboBox.SelectedItem = TRAININGSAMPLES;
+      progressPanel.Visible = false;
     }
 
@@ -78,4 +79,5 @@
         CalculateCorrelation();
       } else {
+        progressPanel.Visible = false;
         dataView.Maximum = 0;
         dataView.Minimum = 0;
