Index: src/test/org/apache/lucene/search/TestSort.java
===================================================================
--- src/test/org/apache/lucene/search/TestSort.java	(revision 817998)
+++ src/test/org/apache/lucene/search/TestSort.java	(working copy)
@@ -865,11 +865,6 @@
         "OutOfOrderOneComparatorScoringMaxScoreCollector" 
     };
     
-    // Save the original value to set later.
-    boolean origVal = BooleanQuery.getAllowDocsOutOfOrder();
-    
-    BooleanQuery.setAllowDocsOutOfOrder(true);
-    
     BooleanQuery bq = new BooleanQuery();
     // Add a Query with SHOULD, since bw.scorer() returns BooleanScorer2
     // which delegates to BS if there are no mandatory clauses.
@@ -877,28 +872,20 @@
     // Set minNrShouldMatch to 1 so that BQ will not optimize rewrite to return
     // the clause instead of BQ.
     bq.setMinimumNumberShouldMatch(1);
-    try {
-      for (int i = 0; i < sort.length; i++) {
-        for (int j = 0; j < tfcOptions.length; j++) {
-          TopDocsCollector tdc = TopFieldCollector.create(sort[i], 10,
-              tfcOptions[j][0], tfcOptions[j][1], tfcOptions[j][2], false);
+    for (int i = 0; i < sort.length; i++) {
+      for (int j = 0; j < tfcOptions.length; j++) {
+        TopDocsCollector tdc = TopFieldCollector.create(sort[i], 10,
+            tfcOptions[j][0], tfcOptions[j][1], tfcOptions[j][2], false);
 
-          assertTrue(tdc.getClass().getName().endsWith("$"+actualTFCClasses[j]));
-          
-          full.search(bq, tdc);
-          
-          TopDocs td = tdc.topDocs();
-          ScoreDoc[] sd = td.scoreDocs;
-          assertEquals(10, sd.length);
-        }
+        assertTrue(tdc.getClass().getName().endsWith("$"+actualTFCClasses[j]));
+        
+        full.search(bq, tdc);
+        
+        TopDocs td = tdc.topDocs();
+        ScoreDoc[] sd = td.scoreDocs;
+        assertEquals(10, sd.length);
       }
-    } finally {
-      // Whatever happens, reset BooleanQuery.allowDocsOutOfOrder to the
-      // original value. Don't set it to false in case the implementation in BQ
-      // will change some day.
-      BooleanQuery.setAllowDocsOutOfOrder(origVal);
     }
-
   }
   
   public void testSortWithScoreAndMaxScoreTrackingNoResults() throws Exception {
Index: src/test/org/apache/lucene/search/TestBoolean2.java
===================================================================
--- src/test/org/apache/lucene/search/TestBoolean2.java	(revision 817998)
+++ src/test/org/apache/lucene/search/TestBoolean2.java	(working copy)
@@ -66,19 +66,18 @@
   public void queriesTest(String queryText, int[] expDocNrs) throws Exception {
 //System.out.println();
 //System.out.println("Query: " + queryText);
-    try {
-      Query query1 = makeQuery(queryText);
-      BooleanQuery.setAllowDocsOutOfOrder(true);
-      ScoreDoc[] hits1 = searcher.search(query1, null, 1000).scoreDocs;
 
-      Query query2 = makeQuery(queryText); // there should be no need to parse again...
-      BooleanQuery.setAllowDocsOutOfOrder(false);
-      ScoreDoc[] hits2 = searcher.search(query2, null, 1000).scoreDocs;
-
-      CheckHits.checkHitsQuery(query2, hits1, hits2, expDocNrs);
-    } finally { // even when a test fails.
-      BooleanQuery.setAllowDocsOutOfOrder(false);
-    }
+    Query query1 = makeQuery(queryText);
+    TopScoreDocCollector collector = TopScoreDocCollector.create(1000, false);
+    searcher.search(query1, null, collector);
+    ScoreDoc[] hits1 = collector.topDocs().scoreDocs;
+    
+    Query query2 = makeQuery(queryText); // there should be no need to parse again...
+    collector = TopScoreDocCollector.create(1000, true);
+    searcher.search(query2, null, collector);
+    ScoreDoc[] hits2 = collector.topDocs().scoreDocs; 
+      
+    CheckHits.checkHitsQuery(query2, hits1, hits2, expDocNrs);
   }
 
   public void testQueries01() throws Exception {
@@ -165,14 +164,19 @@
         // match up.
         Sort sort = Sort.INDEXORDER;
 
-        BooleanQuery.setAllowDocsOutOfOrder(false);
-
         QueryUtils.check(q1,searcher);
 
-        ScoreDoc[] hits1 = searcher.search(q1,null, 1000, sort).scoreDocs;
+        TopFieldCollector collector = TopFieldCollector.create(sort, 1000,
+            false, true, true, true);
 
-        BooleanQuery.setAllowDocsOutOfOrder(true);
-        ScoreDoc[] hits2 = searcher.search(q1,null, 1000, sort).scoreDocs;
+        searcher.search(q1, null, collector);
+        ScoreDoc[] hits1 = collector.topDocs().scoreDocs;
+
+        collector = TopFieldCollector.create(sort, 1000,
+            false, true, true, false);
+        
+        searcher.search(q1, null, collector);
+        ScoreDoc[] hits2 = collector.topDocs().scoreDocs;
         tot+=hits2.length;
         CheckHits.checkEqual(q1, hits1, hits2);
       }
@@ -181,8 +185,6 @@
       // For easier debugging
       System.out.println("failed query: " + q1);
       throw e;
-    } finally { // even when a test fails.
-      BooleanQuery.setAllowDocsOutOfOrder(false);
     }
 
     // System.out.println("Total hits:"+tot);
Index: src/test/org/apache/lucene/search/TestTopScoreDocCollector.java
===================================================================
--- src/test/org/apache/lucene/search/TestTopScoreDocCollector.java	(revision 817998)
+++ src/test/org/apache/lucene/search/TestTopScoreDocCollector.java	(working copy)
@@ -50,11 +50,6 @@
         "InOrderTopScoreDocCollector" 
     };
     
-    // Save the original value to set later.
-    boolean origVal = BooleanQuery.getAllowDocsOutOfOrder();
-
-    BooleanQuery.setAllowDocsOutOfOrder(true);
-
     BooleanQuery bq = new BooleanQuery();
     // Add a Query with SHOULD, since bw.scorer() returns BooleanScorer2
     // which delegates to BS if there are no mandatory clauses.
@@ -62,26 +57,18 @@
     // Set minNrShouldMatch to 1 so that BQ will not optimize rewrite to return
     // the clause instead of BQ.
     bq.setMinimumNumberShouldMatch(1);
-    try {
+    IndexSearcher searcher = new IndexSearcher(dir);
+    for (int i = 0; i < inOrder.length; i++) {
+      TopDocsCollector tdc = TopScoreDocCollector.create(3, inOrder[i]);
+      assertEquals("org.apache.lucene.search.TopScoreDocCollector$" + actualTSDCClass[i], tdc.getClass().getName());
       
-      IndexSearcher searcher = new IndexSearcher(dir);
-      for (int i = 0; i < inOrder.length; i++) {
-        TopDocsCollector tdc = TopScoreDocCollector.create(3, inOrder[i]);
-        assertEquals("org.apache.lucene.search.TopScoreDocCollector$" + actualTSDCClass[i], tdc.getClass().getName());
-        
-        searcher.search(new MatchAllDocsQuery(), tdc);
-        
-        ScoreDoc[] sd = tdc.topDocs().scoreDocs;
-        assertEquals(3, sd.length);
-        for (int j = 0; j < sd.length; j++) {
-          assertEquals("expected doc Id " + j + " found " + sd[j].doc, j, sd[j].doc);
-        }
+      searcher.search(new MatchAllDocsQuery(), tdc);
+      
+      ScoreDoc[] sd = tdc.topDocs().scoreDocs;
+      assertEquals(3, sd.length);
+      for (int j = 0; j < sd.length; j++) {
+        assertEquals("expected doc Id " + j + " found " + sd[j].doc, j, sd[j].doc);
       }
-    } finally {
-      // Whatever happens, reset BooleanQuery.allowDocsOutOfOrder to the
-      // original value. Don't set it to false in case the implementation in BQ
-      // will change some day.
-      BooleanQuery.setAllowDocsOutOfOrder(origVal);
     }
 
   }
Index: src/test/org/apache/lucene/search/QueryUtils.java
===================================================================
--- src/test/org/apache/lucene/search/QueryUtils.java	(revision 817998)
+++ src/test/org/apache/lucene/search/QueryUtils.java	(working copy)
@@ -257,7 +257,7 @@
   public static void checkSkipTo(final Query q, final IndexSearcher s) throws IOException {
     //System.out.println("Checking "+q);
     
-    if (BooleanQuery.getAllowDocsOutOfOrder()) return;  // in this case order of skipTo() might differ from that of next().
+    if (q.weight(s).scoresDocsOutOfOrder()) return;  // in this case order of skipTo() might differ from that of next().
 
     final int skip_op = 0;
     final int next_op = 1;
@@ -277,7 +277,6 @@
         // System.out.print(order[i]==skip_op ? " skip()":" next()");
         // System.out.println();
         final int opidx[] = { 0 };
-
         final Weight w = q.weight(s);
         final Scorer scorer = w.scorer(s.getIndexReader(), true, false);
         if (scorer == null) {
Index: src/java/org/apache/lucene/search/BooleanQuery.java
===================================================================
--- src/java/org/apache/lucene/search/BooleanQuery.java	(revision 817998)
+++ src/java/org/apache/lucene/search/BooleanQuery.java	(working copy)
@@ -309,7 +309,6 @@
       }
       
       // Check if we can return a BooleanScorer
-      scoreDocsInOrder |= !allowDocsOutOfOrder; // until it is removed, factor in the static setting.
       if (!scoreDocsInOrder && topScorer && required.size() == 0 && prohibited.size() < 32) {
         return new BooleanScorer(similarity, minNrShouldMatch, optional, prohibited);
       }
@@ -349,68 +348,6 @@
     
   }
 
-  /**
-   * Whether hit docs may be collected out of docid order.
-   * 
-   * @deprecated this will not be needed anymore, as
-   *             {@link Weight#scoresDocsOutOfOrder()} is used.
-   */
-  private static boolean allowDocsOutOfOrder = true;
-
-  /**
-   * Expert: Indicates whether hit docs may be collected out of docid order.
-   * 
-   * <p>
-   * Background: although the contract of the Scorer class requires that
-   * documents be iterated in order of doc id, this was not true in early
-   * versions of Lucene. Many pieces of functionality in the current Lucene code
-   * base have undefined behavior if this contract is not upheld, but in some
-   * specific simple cases may be faster. (For example: disjunction queries with
-   * less than 32 prohibited clauses; This setting has no effect for other
-   * queries.)
-   * </p>
-   * 
-   * <p>
-   * Specifics: By setting this option to true, docid N might be scored for a
-   * single segment before docid N-1. Across multiple segments, docs may be
-   * scored out of order regardless of this setting - it only applies to scoring
-   * a single segment.
-   * 
-   * Being static, this setting is system wide.
-   * </p>
-   * 
-   * @deprecated this is not needed anymore, as
-   *             {@link Weight#scoresDocsOutOfOrder()} is used.
-   */
-  public static void setAllowDocsOutOfOrder(boolean allow) {
-    allowDocsOutOfOrder = allow;
-  }
-
-  /**
-   * Whether hit docs may be collected out of docid order.
-   * 
-   * @see #setAllowDocsOutOfOrder(boolean)
-   * @deprecated this is not needed anymore, as
-   *             {@link Weight#scoresDocsOutOfOrder()} is used.
-   */
-  public static boolean getAllowDocsOutOfOrder() {
-    return allowDocsOutOfOrder;
-  }  
-  
-  /**
-   * @deprecated Use {@link #setAllowDocsOutOfOrder(boolean)} instead. 
-   */
-  public static void setUseScorer14(boolean use14) {
-	setAllowDocsOutOfOrder(use14);
-  }
-  
-  /**
-   * @deprecated Use {@link #getAllowDocsOutOfOrder()} instead.
-   */
-  public static boolean getUseScorer14() {
-	return getAllowDocsOutOfOrder();
-  }
-
   public Weight createWeight(Searcher searcher) throws IOException {
     return new BooleanWeight(searcher);
   }
