diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Changelog for pantry
 
+## v0.5.1.5
+* Switch back to hackage.haskell.org [#30](https://github.com/commercialhaskell/pantry/pull/30)
+* Pass through basic auth credentials specified in URLs [#32](https://github.com/commercialhaskell/pantry/pull/32)
+
 ## v0.5.1.4
 
 * Allow building with persistent-2.11 [#28](https://github.com/commercialhaskell/pantry/pull/28)
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,8 +7,7 @@
 
 ## What is Pantry
 
-* A Haskell library, command line executable, storage specification, and
-  network protocol
+* A Haskell library, storage specification, and network protocol
 * Intended for content-addressable storage of Haskell packages
 * Allows non-centralized package storage
 * Primarily for use by Stackage and Stack, hopefully other tools as well
diff --git a/pantry.cabal b/pantry.cabal
--- a/pantry.cabal
+++ b/pantry.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: b06a6e2c03d2ca724a7cf071d2d429b54f7af4e7fb8c026689da28163ae1538c
+-- hash: 5145c942948b02a8a3a0fa1c11758a27a8691c292147b48e98d1f07becc053b7
 
 name:           pantry
-version:        0.5.1.4
+version:        0.5.1.5
 synopsis:       Content addressable Haskell package management
 description:    Please see the README on Github at <https://github.com/commercialhaskell/pantry#readme>
 category:       Development
diff --git a/src/Hackage/Security/Client/Repository/HttpLib/HttpClient.hs b/src/Hackage/Security/Client/Repository/HttpLib/HttpClient.hs
--- a/src/Hackage/Security/Client/Repository/HttpLib/HttpClient.hs
+++ b/src/Hackage/Security/Client/Repository/HttpLib/HttpClient.hs
@@ -4,9 +4,9 @@
 {-# LANGUAGE RankNTypes          #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE OverloadedStrings   #-}
--- Taken from
--- https://github.com/well-typed/hackage-security/tree/master/hackage-security-http-client
--- to avoid extra dependencies
+
+-- Adapted from `hackage-security-http-client` to use our own
+-- `Pantry.HTTP` implementation
 module Hackage.Security.Client.Repository.HttpLib.HttpClient (
     httpLib
   ) where
@@ -107,13 +107,16 @@
 setRequestHeaders :: [HttpRequestHeader]
                   -> HTTP.Request -> HTTP.Request
 setRequestHeaders opts =
-    HTTP.setRequestHeaders (trOpt disallowCompressionByDefault opts)
+    setRequestHeaders' (trOpt disallowCompressionByDefault opts)
   where
+    setRequestHeaders' :: [HTTP.Header] -> HTTP.Request -> HTTP.Request
+    setRequestHeaders' = foldr (\(name, val) f -> f . HTTP.setRequestHeader name [val]) id
+
     trOpt :: [(HTTP.HeaderName, [ByteString])]
           -> [HttpRequestHeader]
           -> [HTTP.Header]
     trOpt acc [] =
-      concatMap finalizeHeader acc
+      map finalizeHeader acc
     trOpt acc (HttpRequestMaxAge0:os) =
       trOpt (insert HTTP.hCacheControl ["max-age=0"] acc) os
     trOpt acc (HttpRequestNoTransform:os) =
@@ -128,8 +131,8 @@
     --
     -- TODO: Right we we just comma-separate all of them.
     finalizeHeader :: (HTTP.HeaderName, [ByteString])
-                   -> [HTTP.Header]
-    finalizeHeader (name, strs) = [(name, BS.intercalate ", " (reverse strs))]
+                   -> HTTP.Header
+    finalizeHeader (name, strs) = (name, BS.intercalate ", " (reverse strs))
 
     insert :: Eq a => a -> [b] -> [(a, [b])] -> [(a, [b])]
     insert _ _ [] = []
diff --git a/src/Pantry.hs b/src/Pantry.hs
--- a/src/Pantry.hs
+++ b/src/Pantry.hs
@@ -295,7 +295,7 @@
       , "fe331502606802feac15e514d9b9ea83fee8b6ffef71335479a2e68d84adc6b0"
       ]
   , hscKeyThreshold = 3
-  , hscDownloadPrefix = "https://s3.amazonaws.com/hackage.fpcomplete.com/"
+  , hscDownloadPrefix = "https://hackage.haskell.org/"
   , hscIgnoreExpiry = False
   }
 
diff --git a/src/Pantry/HTTP.hs b/src/Pantry/HTTP.hs
--- a/src/Pantry/HTTP.hs
+++ b/src/Pantry/HTTP.hs
@@ -21,8 +21,7 @@
                                                          getResponseBody,
                                                          getResponseHeaders,
                                                          getResponseStatus,
-                                                         setRequestHeader,
-                                                         setRequestHeaders)
+                                                         setRequestHeader)
 import qualified Network.HTTP.Simple          as HTTP hiding (withResponse)
 import           Network.HTTP.Types           as Export (Header, HeaderName,
                                                          Status, hCacheControl,
diff --git a/src/Pantry/Hackage.hs b/src/Pantry/Hackage.hs
--- a/src/Pantry/Hackage.hs
+++ b/src/Pantry/Hackage.hs
@@ -40,9 +40,9 @@
 import Path ((</>), Path, Abs, Rel, Dir, File, toFilePath, parseRelDir, parseRelFile)
 import qualified Distribution.Text
 import qualified Distribution.PackageDescription as Cabal
-import System.IO (SeekMode (..))
 import qualified Data.List.NonEmpty as NE
 import Data.Text.Metrics (damerauLevenshtein)
+import System.IO (SeekMode (..)) -- Needed on GHC 8.6
 import Distribution.PackageDescription (GenericPackageDescription)
 import Distribution.Types.Version (versionNumbers)
 import Distribution.Types.VersionRange (withinRange)
diff --git a/src/Pantry/Types.hs b/src/Pantry/Types.hs
--- a/src/Pantry/Types.hs
+++ b/src/Pantry/Types.hs
@@ -124,8 +124,7 @@
 import qualified RIO.HashMap as HM
 import qualified Data.Map.Strict as Map (mapKeysMonotonic)
 import qualified RIO.Set as Set
-import Data.Aeson (ToJSON (..), FromJSON (..), withText, FromJSONKey (..))
-import Data.Aeson.Types (ToJSONKey (..) ,toJSONKeyText, Parser)
+import Data.Aeson.Types (toJSONKeyText, Parser)
 import Pantry.Internal.AesonExtended
 import Data.Aeson.Encoding.Internal (unsafeToEncoding)
 import Data.ByteString.Builder (toLazyByteString, byteString, wordDec)
@@ -150,7 +149,6 @@
 import Data.Text.Read (decimal)
 import Path (Path, Abs, Dir, File, toFilePath, filename, (</>), parseRelFile)
 import Path.IO (resolveFile, resolveDir)
-import Data.List.NonEmpty (NonEmpty)
 import qualified Data.List.NonEmpty as NE
 import Casa.Client (CasaRepoPrefix)
 
@@ -1938,7 +1936,7 @@
     --
     -- @since 0.5.0.0
     = LTS
-        !Int -- ^ Major version 
+        !Int -- ^ Major version
         !Int -- ^ Minor version
     -- | Stackage Nightly snapshot,
     -- displayed as @"nighly-YYYY-MM-DD"@.
@@ -2011,7 +2009,7 @@
   display (RSLUrl url (Just blob)) = display url <> " (" <> display blob <> ")"
   display (RSLFilePath resolved) = display (resolvedRelative resolved)
   display (RSLSynonym syn) = display syn
-  
+
 
 instance ToJSON RawSnapshotLocation where
   toJSON (RSLCompiler compiler) = object ["compiler" .= compiler]
