diff --git a/lib/backend.py b/lib/backend.py
index 569a6167d680040252f76e6f1127c0b8431366d7..66f48ec340667742f85b0a73f0fbc15640227771 100644
--- a/lib/backend.py
+++ b/lib/backend.py
@@ -551,8 +551,8 @@ def _GetVgInfo(name, excl_stor):
     vg_free = int(round(vginfo[0][0], 0))
     vg_size = int(round(vginfo[0][1], 0))
   else:
-    vg_free = None
-    vg_size = None
+    vg_free = 0
+    vg_size = 0
 
   return {
     "name": name,
diff --git a/src/Ganeti/Objects.hs b/src/Ganeti/Objects.hs
index 51d166a91d6bdd8839a5e0f10c27eb195b07bae4..760b1b41633199da29b51bfae83dafa40f660cf3 100644
--- a/src/Ganeti/Objects.hs
+++ b/src/Ganeti/Objects.hs
@@ -574,7 +574,8 @@ $(buildObject "Cluster" "cluster" $
   , simpleField "highest_used_port"       [t| Int              |]
   , simpleField "tcpudp_port_pool"        [t| [Int]            |]
   , simpleField "mac_prefix"              [t| String           |]
-  , simpleField "volume_group_name"       [t| String           |]
+  , optionalField $
+    simpleField "volume_group_name"       [t| String           |]
   , simpleField "reserved_lvs"            [t| [String]         |]
   , optionalField $
     simpleField "drbd_usermode_helper"    [t| String           |]
diff --git a/src/Ganeti/Query/Node.hs b/src/Ganeti/Query/Node.hs
index aa4f0edd337e0d81f5bf094c3547ff90d0d5babd..e3a3501c7fe7c07923cd080abf0cf12960707099 100644
--- a/src/Ganeti/Query/Node.hs
+++ b/src/Ganeti/Query/Node.hs
@@ -31,6 +31,7 @@ module Ganeti.Query.Node
 
 import Control.Applicative
 import Data.List
+import Data.Maybe
 import qualified Data.Map as Map
 import qualified Text.JSON as J
 
@@ -221,7 +222,7 @@ maybeCollectLiveData:: Bool -> ConfigData -> [Node] -> IO [(Node, NodeRuntime)]
 maybeCollectLiveData False _ nodes =
   return $ zip nodes (repeat $ Left (RpcResultError "Live data disabled"))
 maybeCollectLiveData True cfg nodes = do
-  let vgs = [clusterVolumeGroupName $ configCluster cfg]
+  let vgs = [fromMaybe [] (clusterVolumeGroupName $ configCluster cfg)]
       hvs = [getDefaultHypervisor cfg]
       step n (bn, gn, em) =
         let ndp' = getNodeNdParams cfg n
diff --git a/src/Ganeti/Query/Server.hs b/src/Ganeti/Query/Server.hs
index 07fbce0fd869d96cfb492ba3f8f63c7db381a2aa..9176a1a1f0ee899134b9c5016fbe3a88dbb98830 100644
--- a/src/Ganeti/Query/Server.hs
+++ b/src/Ganeti/Query/Server.hs
@@ -116,7 +116,8 @@ handleCall cdata QueryClusterInfo =
             , ("master_netmask", showJSON $ clusterMasterNetmask cluster)
             , ("use_external_mip_script",
                showJSON $ clusterUseExternalMipScript cluster)
-            , ("volume_group_name", showJSON $ clusterVolumeGroupName cluster)
+            , ("volume_group_name",
+               maybe JSNull showJSON (clusterVolumeGroupName cluster))
             , ("drbd_usermode_helper",
                maybe JSNull showJSON (clusterDrbdUsermodeHelper cluster))
             , ("file_storage_dir", showJSON $ clusterFileStorageDir cluster)