     let noSignals = noProperties && signals.isEmpty
     let retain: String
     let retainPtr: String
+	// Disable required initalisers for Value wrappers. AppLaunchContext is hardcoded because of a bug that causes it to report a wrong base when generating gdk wrappers.
+	let isObject = e.rootType.name == "Object" || e.rootType.name == "AppLaunchContext";
     if let ref = e.ref, ref.args.count == 1 {
         retain = ref.cname
         retainPtr = RawPointerConversion(source: cGIRType, target: GIR.rawPointerType).castFromTarget(expression: "ptr")

        "/// Unsafe untyped initialiser.\n" + indentation +
        "/// **Do not use unless you know the underlying data type the pointer points to conforms to `\(protocolName)`.**\n" + indentation +
        "/// - Parameter p: mutable raw pointer to the underlying object\n" + indentation + "@inlinable " +
        (hasParent ? "override " : "") +
        "public init(raw p: UnsafeMutableRawPointer) {\n" + doubleIndentation +
            (hasParent ? "super.init(raw: p)\n" : "ptr = p\n") + indentation +
        "}\n\n") + (indentation +

        "/// Unsafe untyped initialiser.\n" + indentation +
        "/// **Do not use unless you know the underlying data type the pointer points to conforms to `\(protocolName)`.**\n" + indentation +
        "/// - Parameter p: raw pointer to the underlying object\n" + indentation + "@inlinable " +
						(hasParent ? "override " : "") +
        "public init(raw p: UnsafeRawPointer) {\n" + doubleIndentation +
            (hasParent ? "super.init(raw: p)\n" : "ptr = UnsafeMutableRawPointer(mutating: p)\n") + indentation +
        "}\n\n") + (indentation +

        "/// Unsafe untyped, retaining initialiser.\n" + indentation +
        "/// **Do not use unless you know the underlying data type the pointer points to conforms to `\(protocolName)`.**\n" + indentation + "@inlinable " +
						(hasParent ? "override " : "") +
        "public init(retainingRaw raw: UnsafeRawPointer) {\n" + doubleIndentation +
            (hasParent ? "super.init(retainingRaw: raw)\n" :
            "ptr = UnsafeMutableRawPointer(mutating: raw)\n" + doubleIndentation +
