diff --git a/Changes b/Changes
new file mode 100644
index 0000000..5c19bc3
--- /dev/null
+++ b/Changes
@@ -0,0 +1,2 @@
+0.2.3 2021-03-24
+    - Added trail info to RTF export.
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index d884db3..61fe2a7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
   <groupId>de.ids_mannheim.korap</groupId>
   <artifactId>KalamarExportPlugin</artifactId>
   <packaging>jar</packaging>
-  <version>0.2.2</version>
+  <version>0.2.3</version>
   <name>KalamarExportPlugin</name>
   <url>http://maven.apache.org</url>
   
diff --git a/src/main/java/de/ids_mannheim/korap/plkexport/RtfExporter.java b/src/main/java/de/ids_mannheim/korap/plkexport/RtfExporter.java
index d9041d7..81faa82 100644
--- a/src/main/java/de/ids_mannheim/korap/plkexport/RtfExporter.java
+++ b/src/main/java/de/ids_mannheim/korap/plkexport/RtfExporter.java
@@ -93,6 +93,14 @@
 
     @Override
     public void writeFooter (Writer w) throws IOException {
+        String trail = prop.getProperty("rtf.trail");
+
+        if (trail != null && trail.length() > 0) {
+            w.append(HLINE).append("\\par {\\pard\\fs18\\f0 ");
+            rtfText(w, trail);
+            w.append("\\par}\n");
+        }
+
         // Add line
         w.append(HLINE).append("}");
     };
diff --git a/src/test/java/de/ids_mannheim/korap/plkexport/RtfExporterTest.java b/src/test/java/de/ids_mannheim/korap/plkexport/RtfExporterTest.java
index 6a67950..aa96c33 100644
--- a/src/test/java/de/ids_mannheim/korap/plkexport/RtfExporterTest.java
+++ b/src/test/java/de/ids_mannheim/korap/plkexport/RtfExporterTest.java
@@ -7,6 +7,9 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.fail;
+
+import java.util.Properties;
+
 import org.junit.Test;
 
 import javax.ws.rs.core.Response;
@@ -91,4 +94,25 @@
         assertEquals(rtf.getMimeType(),"application/rtf");
         assertEquals(rtf.getSuffix(),"rtf");
     };
+
+    @Test
+    public void testTrail () throws IOException {
+
+        Properties properties = ExWSConf.properties(null);
+        properties.setProperty(
+            "rtf.trail",
+            "Please cite us under http://korap.ids-mannheim.de!"
+            );
+
+        RtfExporter rtf = new RtfExporter();
+        rtf.init("{\"query\":\"cool\"}");
+        rtf.finish();
+
+        Response resp = rtf.serve().build();
+        String x = (String) resp.getEntity();
+        resp.close();
+
+        assertTrue(x.contains("{\\pard\\fs18\\f0 Please cite us"));
+        assertTrue(x.contains("under http://korap.ids-mannheim.de!\\par}"));
+    };
 };
