diff --git a/src/Ganeti/Hypervisor/Xen/XmParser.hs b/src/Ganeti/Hypervisor/Xen/XmParser.hs
index a5459f29d6f6f31033df7a8b5b1ea70e085a419b..c24d11147b82bde55d9707029766f5282e4a2480 100644
--- a/src/Ganeti/Hypervisor/Xen/XmParser.hs
+++ b/src/Ganeti/Hypervisor/Xen/XmParser.hs
@@ -59,8 +59,8 @@ lispConfigParser =
     where listConfigP = LCList <$> (A.char '(' *> liftA2 (++)
             (many middleP)
             (((:[]) <$> finalP) <|> (rparen *> pure [])))
-          doubleP = LCDouble <$> A.double <* A.skipSpace <* A.endOfInput
-          innerDoubleP = LCDouble <$> A.double
+          doubleP = LCDouble <$> A.rational <* A.skipSpace <* A.endOfInput
+          innerDoubleP = LCDouble <$> A.rational
           stringP = LCString . unpack <$> A.takeWhile1 (not . (\c -> isSpace c
             || c `elem` "()"))
           wspace = AC.many1 A.space