<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -187,7 +187,7 @@ TwitterAccount := Object clone do(
 					if(e isOverloaded or e isDown or e isInternalError,
 						attempts = attempts + 1
 					,
-						return(ExceptionConditional clone setException(e))
+						return(TwitterAccount ExceptionConditional clone setException(e))
 					)
 				,
 					if(list(&quot;Connection reset by peer&quot;, &quot;Timeout&quot;) detect(m, e error containsSeq(m)),
@@ -197,7 +197,7 @@ TwitterAccount := Object clone do(
 					)
 				)
 			,
-				return(ExceptionConditional clone setResult(result) setDone(true))
+				return(TwitterAccount ExceptionConditional clone setResult(result) setDone(true))
 			)
 		)
 		</diff>
      <filename>addons/Twitter/io/TwitterAccount.io</filename>
    </modified>
    <modified>
      <diff>@@ -21,4 +21,34 @@ TwitterSearch := Object clone do(
 	cursor := method(
 		TwitterSearchCursor clone setSearch(self clone setPage(0))
 	)
+	
+	handleErrors := method( //TODO: Unify this with account
+		attempts := 0
+
+		while(attempts &lt; 3,
+			e := try(
+				result := self doMessage(call message arguments at(0), call sender)
+			)
+
+			if(e,
+				if(e hasProto(TwitterException),
+					if(e isOverloaded or e isDown or e isInternalError,
+						attempts = attempts + 1
+					,
+						return(TwitterAccount ExceptionConditional clone setException(e))
+					)
+				,
+					if(list(&quot;Connection reset by peer&quot;, &quot;Timeout&quot;) detect(m, e error containsSeq(m)),
+						attempts = attempts + 1
+					,
+						e pass
+					)
+				)
+			,
+				return(TwitterAccount ExceptionConditional clone setResult(result) setDone(true))
+			)
+		)
+
+		e pass
+	)
 )
\ No newline at end of file</diff>
      <filename>addons/Twitter/io/TwitterSearch.io</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,7 @@ TwitterSearchCursor := Object clone do(
 	)
 	
 	fetchNext := method(
-		results appendSeq(search setPage(search page + 1) results)
+		search setPage(search page + 1) handleErrors(results) else(searchResults, results appendSeq(searchResults))
 		self
 	)
 )
\ No newline at end of file</diff>
      <filename>addons/Twitter/io/TwitterSearchCursor.io</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>cc88ccec8a1777d43d76b11bf718764c43335b8f</id>
    </parent>
  </parents>
  <author>
    <name>Rich Collins</name>
    <email>richcollins@gmail.com</email>
  </author>
  <url>http://github.com/stevedekorte/io/commit/1a80de3bc5e0ef53e8e4cb4bdd601ada2b7d3b40</url>
  <id>1a80de3bc5e0ef53e8e4cb4bdd601ada2b7d3b40</id>
  <committed-date>2009-11-04T11:18:29-08:00</committed-date>
  <authored-date>2009-11-04T11:18:29-08:00</authored-date>
  <message>retry on search errors</message>
  <tree>9d3a8e8e3e381a0b5966c285429f83be714a56b4</tree>
  <committer>
    <name>Rich Collins</name>
    <email>richcollins@gmail.com</email>
  </committer>
</commit>
