diff --git a/modules/system/system.queue.inc b/modules/system/system.queue.inc
index 901c4d6..20f0d34 100644
--- a/modules/system/system.queue.inc
+++ b/modules/system/system.queue.inc
@@ -104,8 +104,8 @@ interface DrupalQueueInterface {
    * @param $data
    *   Arbitrary data to be associated with the new task in the queue.
    * @return
-   *   TRUE if the item was successfully created and was (best effort) added
-   *   to the queue, otherwise FALSE. We don't guarantee the item was
+   *   A unique ID if the item was successfully created and was (best effort)
+   *   added to the queue, otherwise FALSE. We don't guarantee the item was
    *   committed to disk etc, but as far as we know, the item is now in the
    *   queue.
    */
@@ -144,6 +144,11 @@ interface DrupalQueueInterface {
    *   item it returns false. This implies a best effort to retrieve an item
    *   and either the queue is empty or there is some other non-recoverable
    *   problem.
+   *
+   *   If returned, the object will have at least the following properties:
+   *   - data: the same as what what passed into createItem().
+   *   - item_id: the unique ID returned from createItem().
+   *   - created: timestamp when the item was put into the queue.
    */
   public function claimItem($lease_time = 3600);
 
@@ -218,7 +223,8 @@ class SystemQueue implements DrupalReliableQueueInterface {
         // by a single request which takes longer than 1 second.
         'created' => time(),
       ));
-    return (bool) $query->execute();
+    // Return the new serial ID, or FALSE on failure.
+    return $query->execute();
   }
 
   public function numberOfItems() {
@@ -231,7 +237,7 @@ class SystemQueue implements DrupalReliableQueueInterface {
     // until an item is successfully claimed or we are reasonably sure there
     // are no unclaimed items left.
     while (TRUE) {
-      $item = db_query_range('SELECT data, item_id FROM {queue} q WHERE expire = 0 AND name = :name ORDER BY created ASC', 0, 1, array(':name' => $this->name))->fetchObject();
+      $item = db_query_range('SELECT data, created, item_id FROM {queue} q WHERE expire = 0 AND name = :name ORDER BY created ASC', 0, 1, array(':name' => $this->name))->fetchObject();
       if ($item) {
         // Try to update the item. Only one thread can succeed in UPDATEing the
         // same row. We cannot rely on REQUEST_TIME because items might be
@@ -326,6 +332,7 @@ class MemoryQueue implements DrupalQueueInterface {
     $item->created = time();
     $item->expire = 0;
     $this->queue[$item->item_id] = $item;
+    return $item->item_id;
   }
 
   public function numberOfItems() {
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index 580cc38..34d8a50 100644
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -433,6 +433,16 @@ ini_set('session.cookie_lifetime', 2000000);
 # $conf['js_gzip_compression'] = FALSE;
 
 /**
+ * HTTP Request Buffer
+ *
+ * When drupal requests a file from another webserver, it periodically checks
+ * for end-of-file and server timeouts.  The default is to read a maximum of
+ * 1024 bytes between each check.  Increasing this limit may help performance
+ * when reading large files from the network.
+ */
+# $conf['http_request_buffer'] = 1024;
+
+/**
  * String overrides:
  *
  * To override specific strings on your site with or without enabling the Locale
