diff --git a/Git/S3.hs b/Git/S3.hs
--- a/Git/S3.hs
+++ b/Git/S3.hs
@@ -563,29 +563,23 @@
                             (RequestBodyLBS lbs))
             void $ readResponseIO res
 
-type RefMap m = M.HashMap Text (Maybe (Git.Reference (LgRepository m)))
+type RefMap m = M.HashMap Text (Maybe (Git.RefTarget (LgRepository m)))
 
 -- jww (2013-04-26): Split these off into a gitlib-aeson library.
-instance A.FromJSON (Reference m) where
+instance A.FromJSON (RefTarget m) where
     parseJSON j = do
         o <- A.parseJSON j
         case L.lookup "symbolic" (M.toList (o :: A.Object)) of
-            Just _ -> Git.Reference
-                          <$> o .: "symbolic"
-                          <*> (Git.RefSymbolic <$> o .: "target")
-            Nothing -> Git.Reference
-                           <$> o .: "name"
-                           <*> (Git.RefObj . go <$> o .: "target")
+            Just _  -> Git.RefSymbolic <$> o .: "symbolic-target"
+            Nothing -> Git.RefObj . go <$> o .: "oid-target"
       where
         go = return . mkOid . unsafePerformIO . strToOid
 
-instance Git.MonadGit m => A.ToJSON (Reference m) where
-  toJSON (Git.Reference name (Git.RefSymbolic target)) =
-      object [ "symbolic" .= name
-             , "target"   .= target ]
-  toJSON (Git.Reference name (Git.RefObj oid)) =
-      object [ "name"   .= name
-             , "target" .= coidToJSON (getOid (unTagged oid)) ]
+instance Git.MonadGit m => A.ToJSON (RefTarget m) where
+  toJSON (Git.RefSymbolic target) =
+      object [ "symbolic-target" .= target ]
+  toJSON (Git.RefObj oid) =
+      object [ "oid-target" .= coidToJSON (getOid (unTagged oid)) ]
 
 readRefs :: Ptr C'git_odb_backend -> IO (Maybe (RefMap m))
 readRefs be = do
@@ -623,13 +617,11 @@
   where
     go repoPtr namePtr ref ptr = do
         r <- case ref of
-            Just Git.Reference
-                { Git.referenceTarget = Git.RefSymbolic target } ->
+            Just (Git.RefSymbolic target) ->
                 withCString (T.unpack target) $ \targetPtr ->
                     c'git_reference_symbolic_create ptr repoPtr namePtr
                         targetPtr 1
-            Just Git.Reference {
-                Git.referenceTarget = Git.RefObj (Tagged coid) } ->
+            Just (Git.RefObj (Tagged coid)) ->
                 withForeignPtr (getOid coid) $ \coidPtr ->
                     c'git_reference_create ptr repoPtr namePtr coidPtr 1
             _ -> return 0
@@ -637,7 +629,7 @@
 
 mirrorRefsToS3 :: Git.MonadGit m => Ptr C'git_odb_backend -> LgRepository m ()
 mirrorRefsToS3 be = do
-    names <- Git.allReferenceNames
+    names <- Git.listReferences
     refs  <- mapM Git.lookupReference names
     liftIO $ writeRefs be (M.fromList (L.zip names refs))
 
diff --git a/gitlib-s3.cabal b/gitlib-s3.cabal
--- a/gitlib-s3.cabal
+++ b/gitlib-s3.cabal
@@ -1,5 +1,5 @@
 Name:                gitlib-s3
-Version:             1.4.1
+Version:             2.0.0.0
 Synopsis:            Gitlib repository backend for storing Git objects in Amazon S3
 Description:         Gitlib repository backend for storing Git objects in Amazon S3.
 License-file:        LICENSE
@@ -22,10 +22,10 @@
   hs-source-dirs: test
   build-depends:
       base >=3
-    , gitlib             >= 1.4.0
-    , gitlib-s3          >= 1.4.1
-    , gitlib-test        >= 1.4.0
-    , gitlib-libgit2     >= 1.4.1
+    , gitlib             >= 2.0.0.0
+    , gitlib-s3          >= 2.0.0.0
+    , gitlib-test        >= 2.0.0.0
+    , gitlib-libgit2     >= 2.0.0.0
     , hlibgit2           >= 0.18.0.7
     , aws                >= 0.7.5
     , HUnit              >= 1.2.5
@@ -45,8 +45,8 @@
   default-language: Haskell98
   build-depends:
       base                 >= 3 && < 5
-    , gitlib               >= 1.4.0
-    , gitlib-libgit2       >= 1.4.1
+    , gitlib               >= 2.0.0.0
+    , gitlib-libgit2       >= 2.0.0.0
     , ghc-prim
     , hlibgit2             >= 0.18.0.1
     , HUnit                >= 1.2.5
