diff --git a/Ganeti/HTools/Luxi.hs b/Ganeti/HTools/Luxi.hs
index 8fe728f0cae48396c68bd9ea1488de904182d215..1c2fae431aee363c145f33ca5ee90527ae4de14c 100644
--- a/Ganeti/HTools/Luxi.hs
+++ b/Ganeti/HTools/Luxi.hs
@@ -131,10 +131,10 @@ parseNode (JSArray [ name, mtotal, mnode, mfree, dtotal, dfree
   xname <- annotateResult "Parsing new node" (fromJVal name)
   let convert v = annotateResult ("Node '" ++ xname ++ "'") (fromJVal v)
   xoffline <- convert offline
-  node <- (if xoffline
+  xdrained <- convert drained
+  node <- (if xoffline || xdrained
            then return $ Node.create xname 0 0 0 0 0 0 True
            else do
-             xdrained <- convert drained
              xmtotal  <- convert mtotal
              xmnode   <- convert mnode
              xmfree   <- convert mfree
@@ -142,7 +142,7 @@ parseNode (JSArray [ name, mtotal, mnode, mfree, dtotal, dfree
              xdfree   <- convert dfree
              xctotal  <- convert ctotal
              return $ Node.create xname xmtotal xmnode xmfree
-                    xdtotal xdfree xctotal (xoffline || xdrained))
+                    xdtotal xdfree xctotal False)
   return (xname, node)
 
 parseNode v = fail ("Invalid node query result: " ++ show v)
diff --git a/Ganeti/HTools/Rapi.hs b/Ganeti/HTools/Rapi.hs
index 3f60699074b692bd58148ab47f1dd3af054979c4..8544723e4bc7679ca55f3218df61b06fce23313a 100644
--- a/Ganeti/HTools/Rapi.hs
+++ b/Ganeti/HTools/Rapi.hs
@@ -98,10 +98,10 @@ parseNode a = do
   name <- tryFromObj "Parsing new node" a "name"
   let extract s = tryFromObj ("Node '" ++ name ++ "'") a s
   offline <- extract "offline"
-  node <- (if offline
+  drained <- extract "drained"
+  node <- (if offline || drained
            then return $ Node.create name 0 0 0 0 0 0 True
            else do
-             drained <- extract "drained"
              mtotal  <- extract "mtotal"
              mnode   <- extract "mnode"
              mfree   <- extract "mfree"
@@ -109,7 +109,7 @@ parseNode a = do
              dfree   <- extract "dfree"
              ctotal  <- extract "ctotal"
              return $ Node.create name mtotal mnode mfree
-                    dtotal dfree ctotal (offline || drained))
+                    dtotal dfree ctotal False)
   return (name, node)
 
 -- | Builds the cluster data from an URL.