--- python-poppler-qt4-0.16.2/poppler-annotation.sip	2010-10-28 11:49:32.000000000 +0200
+++ python-poppler-qt4-0.16.2/poppler-annotation.sip	2012-05-18 13:38:21.000000000 +0200
@@ -45,6 +45,7 @@ public:
     void setFlags( int flags );
     QRectF boundary() const;
     void setBoundary( const QRectF &boundary );
+%If(- POPPLER_V0_18_0)
     struct Style {
         // appearance properties
         QColor          color;              // black
@@ -92,12 +93,18 @@ public:
 
 //    QLinkedList< Poppler::Annotation::Revision >& revisions();
     const QLinkedList< Poppler::Annotation::Revision >& revisions() const;
+%End
     virtual SubType subType() const = 0;
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode & parentNode, QDomDocument & document ) const;
+%End
     virtual ~Annotation();
 
 private:
     Annotation(const Poppler::Annotation&);
+%If(POPPLER_V0_20_0 -)
+    virtual void store( QDomNode & parentNode, QDomDocument & document ) const;
+%End
 
 %ConvertToSubClassCode
     switch (sipCpp->subType()) {
@@ -151,17 +158,23 @@ class TextAnnotation : Poppler::Annotati
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     TextAnnotation();
     TextAnnotation( const QDomNode &node );
+%End
     virtual ~TextAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
     
     enum TextType { Linked, InPlace };
     enum InplaceIntent { Unknown, Callout, TypeWriter };
     
     TextType textType() const;
+%If(- POPPLER_V0_18_0)
     void setTextType( TextType type );
+%End
     
     QString textIcon() const;
     void setTextIcon( const QString &icon );
@@ -176,12 +189,20 @@ public:
     void setInplaceText( const QString &text );
     
     QPointF calloutPoint( int id ) const;
+%If(- POPPLER_V0_18_0)
     void setCalloutPoint( int id, const QPointF &point );
+%End
 
     InplaceIntent inplaceIntent() const;
     void setInplaceIntent( InplaceIntent intent );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    TextAnnotation();
+    TextAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+    void setTextType( TextType type );
+%End
     TextAnnotation(const Poppler::TextAnnotation&);
     
 }; // class TextAnnotation
@@ -194,10 +215,14 @@ class LineAnnotation : Poppler::Annotati
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     LineAnnotation();
     LineAnnotation( const QDomNode &node );
+%End
     virtual ~LineAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
 
     enum TermStyle { Square, Circle, Diamond, OpenArrow, ClosedArrow, None,
@@ -232,6 +257,11 @@ public:
     void setLineIntent( LineIntent intent );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    LineAnnotation();
+    LineAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     LineAnnotation(const Poppler::LineAnnotation&);
     
 }; // class LineAnnotation
@@ -244,10 +274,14 @@ class GeomAnnotation : Poppler::Annotati
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     GeomAnnotation();
     GeomAnnotation( const QDomNode &node );
+%End
     virtual ~GeomAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
 
     enum GeomType { InscribedSquare, InscribedCircle };
@@ -258,10 +292,17 @@ public:
     QColor geomInnerColor() const;
     void setGeomInnerColor( const QColor &color );
 
+%If(- POPPLER_V0_18_0)
     int geomPointWidth() const;
     void setGeomPointWidth( int width );
+%End
 
 private:
+%If(POPPLER_V0_20_0 -)
+    GeomAnnotation();
+    GeomAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     GeomAnnotation(const Poppler::GeomAnnotation&);
     
 }; // class GeomAnnotation
@@ -274,10 +315,14 @@ class HighlightAnnotation : Poppler::Ann
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     HighlightAnnotation();
     HighlightAnnotation( const QDomNode &node );
+%End
     virtual ~HighlightAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
     enum HighlightType {
         Highlight,
@@ -341,6 +386,11 @@ public:
     void setHighlightQuads( const QList< Poppler::HighlightAnnotation::Quad > &quads );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    HighlightAnnotation();
+    HighlightAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     HighlightAnnotation(const Poppler::HighlightAnnotation&);
     
 }; // class HighlightAnnotation
@@ -353,13 +403,25 @@ class StampAnnotation : Poppler::Annotat
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     StampAnnotation();
     StampAnnotation( const QDomNode &node );
+%End
     virtual ~StampAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
     QString stampIconName() const;
     void setStampIconName( const QString &name );
+
+private:
+%If(POPPLER_V0_20_0 -)
+    StampAnnotation();
+    StampAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
+
 }; // class StampAnnotation
 
 
@@ -370,15 +432,24 @@ class InkAnnotation : Poppler::Annotatio
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     InkAnnotation();
     InkAnnotation( const QDomNode &node );
+%End
     virtual ~InkAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
     QList< QLinkedList<QPointF> > inkPaths() const;
     void setInkPaths( const QList< QLinkedList<QPointF> > &paths );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    InkAnnotation();
+    InkAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     InkAnnotation(const Poppler::InkAnnotation&);
     
 }; // class InkAnnotation
@@ -391,15 +462,24 @@ class LinkAnnotation : Poppler::Annotati
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     LinkAnnotation();
     LinkAnnotation( const QDomNode &node );
+%End
     virtual ~LinkAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
 
     enum HighlightMode { None, Invert, Outline, Push };
 
+%If(- POPPLER_V0_18_0)
     Poppler::Link* linkDestionation() const;
+%End
+%If(POPPLER_V0_20_0 -)
+    Poppler::Link* linkDestination() const;
+%End
     void setLinkDestination( Poppler::Link *link );
 
     HighlightMode linkHighlightMode() const;
@@ -409,6 +489,11 @@ public:
     void setLinkRegionPoint( int id, const QPointF &point );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    LinkAnnotation();
+    LinkAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     LinkAnnotation(const Poppler::LinkAnnotation&);
     
 }; // class LinkAnnotation
@@ -421,16 +506,25 @@ class CaretAnnotation : Poppler::Annotat
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     CaretAnnotation();
     CaretAnnotation( const QDomNode &node );
+%End
     virtual ~CaretAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
     enum CaretSymbol { None, P };
     CaretSymbol caretSymbol() const;
     void setCaretSymbol( CaretSymbol symbol );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    CaretAnnotation();
+    CaretAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     CaretAnnotation(const Poppler::CaretAnnotation&);
     
 }; // class CaretAnnotation
@@ -443,10 +537,14 @@ class FileAttachmentAnnotation : Poppler
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     FileAttachmentAnnotation();
     FileAttachmentAnnotation( const QDomNode &node );
+%End
     virtual ~FileAttachmentAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
     QString fileIconName() const;
     void setFileIconName( const QString &icon );
@@ -454,6 +552,11 @@ public:
     void setEmbeddedFile( Poppler::EmbeddedFile *ef );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    FileAttachmentAnnotation();
+    FileAttachmentAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     FileAttachmentAnnotation(const Poppler::FileAttachmentAnnotation&);
     
 }; // class FileAttachmentAnnotation
@@ -466,10 +569,14 @@ class SoundAnnotation : Poppler::Annotat
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     SoundAnnotation();
     SoundAnnotation( const QDomNode &node );
+%End
     virtual ~SoundAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
     QString soundIconName() const;
     void setSoundIconName( const QString &icon );
@@ -477,6 +584,11 @@ public:
     void setSound( Poppler::SoundObject *ef );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    SoundAnnotation();
+    SoundAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     SoundAnnotation(const Poppler::SoundAnnotation&);
     
 }; // class SoundAnnotation
@@ -489,10 +601,14 @@ class MovieAnnotation : Poppler::Annotat
 %End
 
 public:
+%If(- POPPLER_V0_18_0)
     MovieAnnotation();
     MovieAnnotation( const QDomNode &node );
+%End
     virtual ~MovieAnnotation();
+%If(- POPPLER_V0_18_0)
     virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     virtual SubType subType() const;
 
     Poppler::MovieObject* movie() const;
@@ -501,6 +617,11 @@ public:
     void setMovieTitle( const QString &title );
 
 private:
+%If(POPPLER_V0_20_0 -)
+    MovieAnnotation();
+    MovieAnnotation( const QDomNode &node );
+    virtual void store( QDomNode &parentNode, QDomDocument &document ) const;
+%End
     MovieAnnotation(const Poppler::MovieAnnotation&);
     
 }; // class MovieAnnotation
--- python-poppler-qt4-0.16.2/poppler-qt4.sip	2011-04-22 23:45:22.000000000 +0200
+++ python-poppler-qt4-0.16.2/poppler-qt4.sip	2012-05-18 12:54:23.000000000 +0200
@@ -9,6 +9,8 @@
     POPPLER_V0_12_1
     POPPLER_V0_14_0
     POPPLER_V0_16_0
+    POPPLER_V0_18_0
+    POPPLER_V0_20_0
 }
 
 %Include types.sip
--- python-poppler-qt4-0.16.2/setup.py	2011-05-20 11:41:55.000000000 +0200
+++ python-poppler-qt4-0.16.2/setup.py	2012-05-18 12:54:45.000000000 +0200
@@ -125,8 +125,12 @@ class build_ext(build_ext_base):
             tag = 'POPPLER_V0_12_1'
         elif ver < (0, 16, 0):
             tag = 'POPPLER_V0_14_0'
-        else:
+        elif ver < (0, 18, 0):
             tag = 'POPPLER_V0_16_0'
+        elif ver < (0, 20, 0):
+            tag = 'POPPLER_V0_18_0'
+        else:
+            tag = 'POPPLER_V0_20_0'
         
         cmd = [sip_bin]
         if hasattr(self, 'sip_opts'):