             let fname = override ? (method.cname.afterFirst() ?? (record.name + name.capitalised)) : name
             let deprecated = method.deprecated != nil ? "@available(*, deprecated) " : ""
             let consPrefix = constructorPrefix(method)
-            let prefix = consPrefix == firstArgName?.swift ? "" : (consPrefix + " ")
-            let fact = factory ? "static func \(fname.swift)(" : "\(conv)init(\(prefix)"
+            let prefix = consPrefix == firstArgName?.swift ? nil : consPrefix
+            let fact = factory ? "static func \(fname.swift)(" : "\(conv)init("
             let code = swiftCode(method, indentation + "\(deprecated)public \(fact)" +
-                constructorParam(method) + ")\(returnDeclaration(method)) {\n" +
+                constructorParam(method, prefix) + ")\(returnDeclaration(method)) {\n" +
                     doubleIndent + call(method) +
                     indentation  + ret(method)  +
                 "}\n", indentation: indentation)



/// Swift code for the parameters of a constructor
public func constructorParam(_ method: GIR.Method) -> String {
    return method.args.lazy.map(argumentCode).joined(separator: ", ")
}



            let instance = $0.instance || $0.isInstanceOf(record)
            if instance { hadInstance = true }
            return !instance
        } .map(codeFor).joined(separator: ", ")

        let deprecated = method.deprecated != nil ? "@available(*, deprecated) " : ""
        let code = swiftCode(method, indentation + "\(deprecated)public func \(name.swift)(" +
