diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.5.2.4
+
+* Cabal 2.0 support
+
 ## 1.5.2.3
 
 * Fix race condition which leads dev server to stay in compilation mode. [#1380](https://github.com/yesodweb/yesod/issues/1380)
diff --git a/Devel.hs b/Devel.hs
--- a/Devel.hs
+++ b/Devel.hs
@@ -255,7 +255,11 @@
 getAvailableFlags =
     Set.fromList . map (unFlagName . D.flagName) . D.genPackageFlags
   where
+#if MIN_VERSION_Cabal(2, 0, 0)
+    unFlagName = D.unFlagName
+#else
     unFlagName (D.FlagName fn) = fn
+#endif
 
 -- | This is the main entry point. Run the devel server.
 devel :: DevelOpts -- ^ command line options
@@ -276,9 +280,20 @@
 #else
     cabal  <- D.findPackageDesc "."
 #endif
+
+#if MIN_VERSION_Cabal(1, 20, 0)
+    gpd    <- D.readGenericPackageDescription D.normal cabal
+#else
     gpd    <- D.readPackageDescription D.normal cabal
+#endif
+
     let pd = D.packageDescription gpd
-        D.PackageIdentifier (D.PackageName packageName) _version = D.package pd
+        D.PackageIdentifier packageNameWrapped _version = D.package pd
+#if MIN_VERSION_Cabal(2, 0, 0)
+        packageName = D.unPackageName packageNameWrapped
+#else
+        D.PackageName packageName = packageNameWrapped
+#endif
 
     -- Which file contains the code to run
     develHsPath <- checkDevelFile
diff --git a/yesod-bin.cabal b/yesod-bin.cabal
--- a/yesod-bin.cabal
+++ b/yesod-bin.cabal
@@ -1,5 +1,5 @@
 name:            yesod-bin
-version:         1.5.2.3
+version:         1.5.2.4
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
