diff --git a/htools/Ganeti/THH.hs b/htools/Ganeti/THH.hs
index 338d40cc1a7011eb72bdfb946f9eb805fcb3d7c8..db10b4d67505a432c50f8547a0d425192800089f 100644
--- a/htools/Ganeti/THH.hs
+++ b/htools/Ganeti/THH.hs
@@ -526,9 +526,8 @@ genOpCode name cons = do
   let tname = mkName name
   decl_d <- mapM (\(cname, fields) -> do
                     -- we only need the type of the field, without Q
-                    fields' <- mapM actualFieldType fields
-                    let fields'' = zip (repeat NotStrict) fields'
-                    return $ NormalC (mkName cname) fields'')
+                    fields' <- mapM (fieldTypeInfo "op") fields
+                    return $ RecC (mkName cname) fields')
             cons
   let declD = DataD [] tname [] decl_d [''Show, ''Read, ''Eq]