When I use ITextSharp to digitally sign a document that is already digitally signed using this code it invalidates the other signatures. If I digitally sign using a text or image it works fine. Is this an Adobe/Itextsharp limitation or is something wrong with the code?

```
public void SignWithLine(string pdfFilePath, string outputFilePath, LineAnnotation lineAnnotation)
{        
    double xStartPoint = 89.285969238281268, yStartPoint = 343.08978515624881, xEndPoint = 72.7515234375, yEndPoint = 496.03341796874878, lineStroke = .24;

    CertificateWrapper certificate = CertificateWrapper.GetCertificateInformationFromSignature(GetCertificateInformation());
    PdfReader reader = new PdfReader(pdfFilePath);
    PdfTemplate layer = null;
    using (PdfStamper signature = PdfStamper.CreateSignature(reader, null, '\0', outputFilePath, true))
    {
        PdfSignatureAppearance signatureAppearance = signature.SignatureAppearance;
        signatureAppearance.SignatureRenderingMode = PdfSignatureAppearance.RenderingMode.GRAPHIC;
        Rectangle rect = new Rectangle((float)Math.Min(xStartPoint, xEndPoint), (float)Math.Min(yStartPoint, yEndPoint), (float)Math.Min(xStartPoint, xEndPoint) + (float)Math.Abs(xEndPoint - xStartPoint), (float)Math.Min(yStartPoint, yEndPoint) + (float)Math.Abs(yEndPoint - yStartPoint));
        signatureAppearance.SetVisibleSignature(rect, lineAnnotation.PageIndex + 1, GetCertificateFieldName());
        layer = signatureAppearance.GetLayer(2);

        PdfContentByte cb = signature.GetUnderContent(lineAnnotation.PageIndex + 1);
        cb.SetLineWidth((float)lineStroke);
        cb.MoveTo((float)xStartPoint, (float)yStartPoint);
        cb.LineTo((float)(xEndPoint), (float)(yEndPoint));
        cb.Stroke();

        signatureAppearance.CertificationLevel = PdfSignatureAppearance.NOT_CERTIFIED;
        // Normal signature, not a certification
        MakeSignature.SignDetached(signatureAppearance, certificate.DigitalSignature, certificate.Chain, null, null, null, 0, true);

        signature.Close();
    }
}

```