diff --git a/src/com/google/enterprise/adaptor/AdaptorContext.java b/src/com/google/enterprise/adaptor/AdaptorContext.java
index 07607d6..9392dc6 100644
--- a/src/com/google/enterprise/adaptor/AdaptorContext.java
+++ b/src/com/google/enterprise/adaptor/AdaptorContext.java
@@ -127,11 +127,4 @@
    * for the GSA. Registration may not occur after {@link Adaptor#init}.
    */
   public void setAuthzAuthority(AuthzAuthority authzAuthority);
-
-  /**
-   * Returns the {@link FeedArchiver}, which saves feeds destined for the GSA
-   * in the configured feed archive directory.  The feed archive directory is
-   * specified using the {@code feed.archiveDirectory} configuration property.
-   */
-  public FeedArchiver getFeedArchiver();
 }
diff --git a/src/com/google/enterprise/adaptor/FeedArchiver.java b/src/com/google/enterprise/adaptor/FeedArchiver.java
index 5c61873..35652b1 100644
--- a/src/com/google/enterprise/adaptor/FeedArchiver.java
+++ b/src/com/google/enterprise/adaptor/FeedArchiver.java
@@ -19,7 +19,7 @@
  * configured feed archive directory.  The feed archive directory is
  * specified using the {@code feed.archiveDirectory} configuration property.
  */
-public interface FeedArchiver {
+interface FeedArchiver {
   /**
    * Save the supplied XML string as a file in the feed archive
    * directory.  The file's name will start with the feed name
diff --git a/src/com/google/enterprise/adaptor/GsaCommunicationHandler.java b/src/com/google/enterprise/adaptor/GsaCommunicationHandler.java
index b4fa6c3..6b9a16d 100644
--- a/src/com/google/enterprise/adaptor/GsaCommunicationHandler.java
+++ b/src/com/google/enterprise/adaptor/GsaCommunicationHandler.java
@@ -120,7 +120,6 @@
   private SensitiveValueCodec secureValueCodec;
   private KeyPair keyPair;
   private AclTransform aclTransform;
-  private FeedArchiver feedArchiver;
 
   /**
    * Used to stop startup prematurely. When greater than 0, start() should abort
@@ -217,8 +216,9 @@
     GsaFeedFileMaker fileMaker = new GsaFeedFileMaker(docIdCodec, aclTransform,
         config.isGsa614FeedWorkaroundEnabled(),
         config.isGsa70AuthMethodWorkaroundEnabled());
-    feedArchiver = new GsaFeedFileArchiver(config.getFeedArchiveDirectory());
-    docIdSender = new DocIdSender(fileMaker, fileSender, feedArchiver, journal,
+    GsaFeedFileArchiver fileArchiver =
+        new GsaFeedFileArchiver(config.getFeedArchiveDirectory());
+    docIdSender = new DocIdSender(fileMaker, fileSender, fileArchiver, journal,
         config, adaptor);
     asyncDocIdSender = new AsyncDocIdSender(docIdSender,
         config.getFeedMaxUrls() /* batch size */,
@@ -867,11 +867,6 @@
     }
 
     @Override
-    public FeedArchiver getFeedArchiver() {
-      return feedArchiver;
-    }
-    
-    @Override
     public synchronized void addStatusSource(StatusSource source) {
       if (!mutable) {
         throw new IllegalStateException("After init()");
diff --git a/src/com/google/enterprise/adaptor/WrapperAdaptor.java b/src/com/google/enterprise/adaptor/WrapperAdaptor.java
index 09765eb..a2dab41 100644
--- a/src/com/google/enterprise/adaptor/WrapperAdaptor.java
+++ b/src/com/google/enterprise/adaptor/WrapperAdaptor.java
@@ -496,10 +496,5 @@
     public void setAuthzAuthority(AuthzAuthority authzAuthority) {
       context.setAuthzAuthority(authzAuthority);
     }
-
-    @Override
-    public FeedArchiver getFeedArchiver() {
-      return context.getFeedArchiver();
-    }
   }
 }
