=== modified file 'eeschema/sch_collectors.cpp'
--- eeschema/sch_collectors.cpp	2013-07-14 18:08:20 +0000
+++ eeschema/sch_collectors.cpp	2013-07-19 08:01:30 +0000
@@ -338,7 +338,7 @@
 }
 
 
-bool SCH_FIND_COLLECTOR::atEnd() const
+bool SCH_FIND_COLLECTOR::PassedEnd() const
 {
     bool retv = false;
 
@@ -351,12 +351,12 @@
     {
         if( flags & wxFR_DOWN )
         {
-            if( m_foundIndex >= (GetCount() - 1) )
+            if( m_foundIndex >= GetCount() )
                 retv = true;
         }
         else
         {
-            if( m_foundIndex == 0 )
+            if( m_foundIndex < 0 )
                 retv = true;
         }
     }
@@ -390,21 +390,15 @@
 
     if( flags & wxFR_DOWN )
     {
-        if( !(flags & FR_SEARCH_WRAP) && (m_foundIndex == (GetCount() - 1)) )
-            return;
-
-        m_foundIndex += 1;
-
+        if( m_foundIndex < GetCount() )
+            m_foundIndex += 1;
         if( (m_foundIndex >= GetCount()) && (flags & FR_SEARCH_WRAP) )
             m_foundIndex = 0;
     }
     else
     {
-        if( !(flags & FR_SEARCH_WRAP) && (m_foundIndex == 0) )
-            return;
-
-        m_foundIndex -= 1;
-
+        if( m_foundIndex >= 0 )
+            m_foundIndex -= 1;
         if( (m_foundIndex < 0) && (flags & FR_SEARCH_WRAP) )
             m_foundIndex = GetCount() - 1;
     }
@@ -452,7 +446,7 @@
 
 EDA_ITEM* SCH_FIND_COLLECTOR::GetItem( SCH_FIND_COLLECTOR_DATA& aData )
 {
-    if( atEnd() )
+    if( PassedEnd() )
         return NULL;
 
     aData = m_data[ m_foundIndex ];
@@ -462,7 +456,7 @@
 
 bool SCH_FIND_COLLECTOR::ReplaceItem()
 {
-    if( atEnd() )
+    if( PassedEnd() )
         return false;
 
     wxCHECK_MSG( IsValidIndex( m_foundIndex ), false,

=== modified file 'eeschema/sch_collectors.h'
--- eeschema/sch_collectors.h	2013-07-14 18:08:20 +0000
+++ eeschema/sch_collectors.h	2013-07-19 07:42:49 +0000
@@ -238,13 +238,13 @@
     bool m_forceSearch;
 
     /**
-     * Function atEnd
-     * tests if #m_foundIndex is at the end of the list give the current find/replace
-     * criterial in #m_findReplaceData.
+     * Function PassedEnd
+     * tests if #m_foundIndex is beyond the end of the list give the current
+     * find/replace criterial in #m_findReplaceData.
      *
-     * @return True if #m_foundIndex is at the end of the found item list.
+     * @return True if #m_foundIndex has crossed the end of the found item list.
      */
-    bool atEnd() const;
+    bool PassedEnd() const;
 
     /**
      * Function dump

