diff --git a/NEWS b/NEWS
index 73a7bc9c188d7d633d4a572699cd64ee94332068..1f93f4417b2c23483252c09de59e3b4c9edad86e 100644
--- a/NEWS
+++ b/NEWS
@@ -4,7 +4,7 @@ News
 Version 2.4.0 beta1
 -------------------
 
-*(unreleased)*
+*(Released Fri, 14 Jan 2011)*
 
 User-visible
 ~~~~~~~~~~~~
diff --git a/configure.ac b/configure.ac
index aab7d6546087ed466e88da6c816251592d02dc67..04034d4375e657c59bd63a9b90c967ce5025dfb6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 # Configure script for Ganeti
 m4_define([gnt_version_major], [2])
-m4_define([gnt_version_minor], [3])
-m4_define([gnt_version_revision], [1])
-m4_define([gnt_version_suffix], [])
+m4_define([gnt_version_minor], [4])
+m4_define([gnt_version_revision], [0])
+m4_define([gnt_version_suffix], [~beta1])
 m4_define([gnt_version_full],
           m4_format([%d.%d.%d%s],
                     gnt_version_major, gnt_version_minor,
diff --git a/test/cfgupgrade_unittest.py b/test/cfgupgrade_unittest.py
index 3bbddcf7e61a7cbd879caccae61d43fd4f91c943..0819dfa56144886d623107f02f9eafac6509bdd6 100755
--- a/test/cfgupgrade_unittest.py
+++ b/test/cfgupgrade_unittest.py
@@ -209,6 +209,9 @@ class TestCfgupgrade(unittest.TestCase):
   def testUpgradeFrom_2_3(self):
     self._TestSimpleUpgrade(constants.BuildVersion(2, 3, 0), False)
 
+  def testUpgradeFrom_2_4(self):
+    self._TestSimpleUpgrade(constants.BuildVersion(2, 4, 0), False)
+
   def testUpgradeCurrent(self):
     self._TestSimpleUpgrade(constants.CONFIG_VERSION, False)
 
@@ -224,6 +227,9 @@ class TestCfgupgrade(unittest.TestCase):
   def testUpgradeDryRunFrom_2_3(self):
     self._TestSimpleUpgrade(constants.BuildVersion(2, 3, 0), True)
 
+  def testUpgradeDryRunFrom_2_4(self):
+    self._TestSimpleUpgrade(constants.BuildVersion(2, 4, 0), True)
+
   def testUpgradeCurrentDryRun(self):
     self._TestSimpleUpgrade(constants.CONFIG_VERSION, True)
 
diff --git a/tools/cfgupgrade b/tools/cfgupgrade
index 9e4b02b6e9f3263559650c14ef2b97e5f18d08eb..222292018d6a9c1000d83587ed761086a1b24e50 100755
--- a/tools/cfgupgrade
+++ b/tools/cfgupgrade
@@ -171,14 +171,14 @@ def main():
     raise Error("Inconsistent configuration: found config_version in"
                 " configuration file")
 
-  # Upgrade from 2.0/2.1/2.2 to 2.3
-  if config_major == 2 and config_minor in (0, 1, 2):
+  # Upgrade from 2.0/2.1/2.2/2.3 to 2.4
+  if config_major == 2 and config_minor in (0, 1, 2, 3):
     if config_revision != 0:
       logging.warning("Config revision is %s, not 0", config_revision)
 
-    config_data["version"] = constants.BuildVersion(2, 3, 0)
+    config_data["version"] = constants.BuildVersion(2, 4, 0)
 
-  elif config_major == 2 and config_minor == 3:
+  elif config_major == 2 and config_minor == 4:
     logging.info("No changes necessary")
 
   else: