Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs	(revision 10704)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/DataGridContentView.cs	(revision 10705)
@@ -150,4 +150,9 @@
       findAndReplaceDialog.ReplaceAllEvent += findAndReplaceDialog_ReplaceAllEvent;
       findAndReplaceDialog.ReplaceNextEvent += findAndReplaceDialog_ReplaceEvent;
+      findAndReplaceDialog.FormClosing += findAndReplaceDialog_FormClosing;
+    }
+
+    void findAndReplaceDialog_FormClosing(object sender, FormClosingEventArgs e) {
+      ResetHighlightedCells();
     }
 
@@ -161,4 +166,5 @@
     void findAndReplaceDialog_ReplaceAllEvent(object sender, EventArgs e) {
       Replace(FindAll(findAndReplaceDialog.GetSearchText()));
+      findAndReplaceDialog.SetEndReached(false);
     }
 
@@ -167,14 +173,22 @@
         searchIterator = new FindPreprocessingItemsIterator(FindAll(findAndReplaceDialog.GetSearchText()));
         currentSearchText = findAndReplaceDialog.GetSearchText();
-      }
-
-      while (searchIterator.MoveNext() && (searchIterator.GetCurrent() == null || !Content.GetValue(searchIterator.GetCurrent().Item1, searchIterator.GetCurrent().Item2).Equals(currentSearchText))) {
-        
-      }
-
-      if (searchIterator.GetCurrent() != null) {
-        HightlightedCells = TransformToDictionary(searchIterator.GetCurrent());
+        findAndReplaceDialog.SetEndReached(false);
+      }
+      
+      Tuple<int, int> currentCell = null;
+      bool moreOccurences = false;
+      do {
+        currentCell = searchIterator.GetCurrent();
+        moreOccurences = searchIterator.MoveNext();
+      } while (moreOccurences && (currentCell == null || !Content.GetValue(currentCell.Item2, currentCell.Item1).Equals(currentSearchText)));
+
+      if (!moreOccurences) {
+        findAndReplaceDialog.SetEndReached(true);
+      }
+
+      if (currentCell != null) {
+        HightlightedCells = TransformToDictionary(currentCell);
       } else {
-        HightlightedCells.Clear();
+        ResetHighlightedCells();
       }
     }
@@ -182,4 +196,5 @@
     void findAndReplaceDialog_FindAllEvent(object sender, EventArgs e) {
       HightlightedCells = FindAll(findAndReplaceDialog.GetSearchText());
+      findAndReplaceDialog.SetEndReached(false);
     }
 
@@ -228,4 +243,8 @@
       highlightCells.Add(tuple.Item1, new List<int>() { tuple.Item2 });
       return highlightCells;
+    }
+
+    private void ResetHighlightedCells() {
+      HightlightedCells = new Dictionary<int, IList<int>>();
     }
 
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.Designer.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.Designer.cs	(revision 10704)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.Designer.cs	(revision 10705)
@@ -37,4 +37,5 @@
       this.txtValue = new System.Windows.Forms.TextBox();
       this.label1 = new System.Windows.Forms.Label();
+      this.lblEndReached = new System.Windows.Forms.Label();
       this.tabSearchReplace.SuspendLayout();
       this.tabReplace.SuspendLayout();
@@ -51,5 +52,5 @@
       this.tabSearchReplace.Name = "tabSearchReplace";
       this.tabSearchReplace.SelectedIndex = 0;
-      this.tabSearchReplace.Size = new System.Drawing.Size(564, 135);
+      this.tabSearchReplace.Size = new System.Drawing.Size(564, 143);
       this.tabSearchReplace.TabIndex = 0;
       this.tabSearchReplace.SelectedIndexChanged += new System.EventHandler(this.tabSearchReplace_SelectedIndexChanged);
@@ -67,4 +68,5 @@
       // tabReplace
       // 
+      this.tabReplace.Controls.Add(this.lblEndReached);
       this.tabReplace.Controls.Add(this.txtSearchString);
       this.tabReplace.Controls.Add(this.lblSearch);
@@ -80,5 +82,5 @@
       this.tabReplace.Name = "tabReplace";
       this.tabReplace.Padding = new System.Windows.Forms.Padding(3);
-      this.tabReplace.Size = new System.Drawing.Size(556, 109);
+      this.tabReplace.Size = new System.Drawing.Size(556, 117);
       this.tabReplace.TabIndex = 1;
       this.tabReplace.Text = "Replace";
@@ -172,9 +174,18 @@
       this.label1.Text = "Replace with";
       // 
+      // lblEndReached
+      // 
+      this.lblEndReached.AutoSize = true;
+      this.lblEndReached.Location = new System.Drawing.Point(218, 100);
+      this.lblEndReached.Name = "lblEndReached";
+      this.lblEndReached.Size = new System.Drawing.Size(139, 13);
+      this.lblEndReached.TabIndex = 24;
+      this.lblEndReached.Text = "No more occurences found.";
+      // 
       // FindAndReplaceDialog
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.ClientSize = new System.Drawing.Size(588, 159);
+      this.ClientSize = new System.Drawing.Size(588, 167);
       this.Controls.Add(this.tabSearchReplace);
       this.Name = "FindAndReplaceDialog";
@@ -202,4 +213,5 @@
     private System.Windows.Forms.TextBox txtValue;
     private System.Windows.Forms.Label label1;
+    private System.Windows.Forms.Label lblEndReached;
   }
 }
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.cs	(revision 10704)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/FindAndReplaceDialog.cs	(revision 10705)
@@ -20,4 +20,5 @@
       cmbReplaceWith.Items.AddRange(cmbItemsText);
       cmbReplaceWith.SelectedIndex = (int)ReplaceAction.Value;
+      SetEndReached(false);
     }
 
@@ -30,4 +31,8 @@
       tabReplace.Focus();
       AddControlsToCurrentTab();
+    }
+
+    public void SetEndReached(bool endReached) {
+      lblEndReached.Visible = endReached;
     }
 
@@ -45,4 +50,5 @@
       tabSearchReplace.SelectedTab.Controls.Add(lblSearch);
       tabSearchReplace.SelectedTab.Controls.Add(txtSearchString);
+      tabSearchReplace.SelectedTab.Controls.Add(lblEndReached);
     }
 
Index: branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/Utils/FindPreprocessingItemsIterator.cs
===================================================================
--- branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/Utils/FindPreprocessingItemsIterator.cs	(revision 10704)
+++ branches/DataPreprocessing/HeuristicLab.DataPreprocessing.Views/3.3/Utils/FindPreprocessingItemsIterator.cs	(revision 10705)
@@ -37,4 +37,5 @@
     public bool MoveNext() {
       bool result = false;
+      bool endReached = false;
       if (items != null) {
         do {
@@ -43,7 +44,9 @@
           } else if (currentCell.Item1 < items.Count - 1) {
             currentCell = new Tuple<int, int>(currentCell.Item1 + 1, 0);
+          } else {
+            endReached = true;
           }
-        } while (!EndReached() && !CurrentCellExists());
-        result = EndReached();
+        } while (!endReached && !CurrentCellExists());
+        result = !endReached;
       }
       return result;
@@ -61,4 +64,7 @@
     public void Reset() {
       currentCell = new Tuple<int, int>(0, 0);
+      if (!CurrentCellExists()) {
+        MoveNext();
+      }
     }
 
@@ -71,11 +77,11 @@
     }
 
-    private bool EndReached() {
-      bool result = true;
-      if (items != null && CurrentCellExists()) {
-        result = currentCell.Item1 >= items.Count - 1 && currentCell.Item2 >= items[currentCell.Item1].Count - 1;
-      }
-      return result;
-    }
+    //private bool EndReached() {
+    //  bool result = true;
+    //  if (items != null && CurrentCellExists()) {
+    //    result = currentCell.Item1 >= items.Count - 1 && currentCell.Item2 >= items[currentCell.Item1].Count - 1;
+    //  }
+    //  return result;
+    //}
   }
 }
