=== modified file 'apt-pkg/acquire-method.cc'
--- apt-pkg/acquire-method.cc	2011-10-30 18:48:05 +0000
+++ apt-pkg/acquire-method.cc	2012-05-14 14:53:43 +0000
@@ -95,12 +95,7 @@
    {
       std::cout << "400 URI Failure\nURI: " << Queue->Uri << "\n"
 		<< "Message: " << Err << " " << IP << "\n";
-      // Dequeue
-      FetchItem *Tmp = Queue;
-      Queue = Queue->Next;
-      delete Tmp;
-      if (Tmp == QueueBack)
-	 QueueBack = Queue;
+      Dequeue();
    }
    else
       std::cout << "400 URI Failure\nURI: <UNKNOWN>\nMessage: " << Err << "\n";
@@ -211,13 +206,7 @@
    }
 
    std::cout << "\n" << std::flush;
-
-   // Dequeue
-   FetchItem *Tmp = Queue;
-   Queue = Queue->Next;
-   delete Tmp;
-   if (Tmp == QueueBack)
-      QueueBack = Queue;
+   Dequeue();
 }
 									/*}}}*/
 // AcqMethod::MediaFail - Syncronous request for new media		/*{{{*/
@@ -465,3 +454,11 @@
    SHA512Sum = Hash.SHA512.Result();
 }
 									/*}}}*/
+void pkgAcqMethod::Dequeue() {						/*{{{*/
+   FetchItem const * const Tmp = Queue;
+   Queue = Queue->Next;
+   if (Tmp == QueueBack)
+      QueueBack = Queue;
+   delete Tmp;
+}
+									/*}}}*/

=== modified file 'apt-pkg/acquire-method.h'
--- apt-pkg/acquire-method.h	2011-12-13 00:22:38 +0000
+++ apt-pkg/acquire-method.h	2012-05-14 14:53:43 +0000
@@ -104,6 +104,9 @@
    
    pkgAcqMethod(const char *Ver,unsigned long Flags = 0);
    virtual ~pkgAcqMethod() {};
+
+   private:
+   void Dequeue();
 };
 
 /** @} */

=== modified file 'debian/changelog'
--- debian/changelog	2012-05-14 13:16:26 +0000
+++ debian/changelog	2012-05-14 14:53:43 +0000
@@ -15,6 +15,8 @@
   * debian/control:
     - move doxygen and debiandoc-sgml to Build-Depends-Indep as docs
       are no longer build in the same target as the manpages
+  * apt-pkg/acquire-methods.cc:
+    - factor out into private Dequeue() to fix access to deleted pointer
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Fri, 11 May 2012 23:26:59 +0200
 

