diff --git a/Ganeti/HTools/Text.hs b/Ganeti/HTools/Text.hs
index efe8b48f1a5c7d97c9f95d705961f32eebc5415d..f686d979120fed7bd40bfe9f96e4bb45b5b1531c 100644
--- a/Ganeti/HTools/Text.hs
+++ b/Ganeti/HTools/Text.hs
@@ -80,11 +80,10 @@ loadInst _ s = fail $ "Invalid/incomplete instance data: '" ++ show s ++ "'"
 -- @gnt-instance list@ and @gnt-node list@ to a list of objects using
 -- a supplied conversion function.
 loadTabular :: (Monad m, Element a) =>
-               String -> ([String] -> m (String, a))
+               [String] -> ([String] -> m (String, a))
             -> m ([(String, Int)], [(Int, a)])
-loadTabular text_data convert_fn = do
-  let lines_data = lines text_data
-      rows = map (sepSplit '|') lines_data
+loadTabular lines_data convert_fn = do
+  let rows = map (sepSplit '|') lines_data
   kerows <- mapM convert_fn rows
   return $ assignIndices kerows
 
@@ -97,7 +96,7 @@ loadData nfile ifile = do -- IO monad
   idata <- readFile ifile
   return $ do
     {- node file: name t_mem n_mem f_mem t_disk f_disk -}
-    (ktn, nl) <- loadTabular ndata loadNode
+    (ktn, nl) <- loadTabular (lines ndata) loadNode
     {- instance file: name mem disk status pnode snode -}
-    (_, il) <- loadTabular idata (loadInst ktn)
+    (_, il) <- loadTabular (lines idata) (loadInst ktn)
     return (nl, il, [])