diff --git a/DISCLAIMER.txt b/DISCLAIMER.txt
deleted file mode 100644
index 7391144..0000000
--- a/DISCLAIMER.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-Apache Marmotta is an effort undergoing incubation at the Apache Software
-Foundation (ASF), sponsored by the Apache Incubator PMC.
-
-Incubation is required of all newly accepted projects until a further review
-indicates that the infrastructure, communications, and decision making process
-have stabilized in a manner consistent with other successful ASF projects.
-
-While incubation status is not necessarily a reflection of the completeness
-or stability of the code, it does indicate that the project has yet to be
-fully endorsed by the ASF.
-
-For more information about the incubation status of the Marmotta project you
-can go to the following page:
-
-  http://marmotta.incubator.apache.org
-
diff --git a/README.txt b/README.txt
index f12e050..0607b4e 100644
--- a/README.txt
+++ b/README.txt
@@ -1,5 +1,5 @@
-Apache Marmotta (incubating)
-===========================
+Apache Marmotta 
+===============
 
 This code repository is still working in progress for the importation of LMF 
 into Marmotta.
@@ -7,7 +7,7 @@
 For more information about the incubation status of the Marmotta project you
 can go to the following page:
 
-  http://marmotta.incubator.apache.org
+  http://marmotta.apache.org
 
 
 1. Building the Source Distribution
@@ -52,7 +52,7 @@
 deploy this archive to any Java Application Server by copying it into
 its deployment directory. More details can be found on:
 
-http://marmotta.incubator.apache.org/installation.html
+http://marmotta.apache.org/installation.html
 
 
 Alternatively, you can directly startup the Apache Marmotta Web Application
@@ -122,4 +122,4 @@
 
 Please keep in mind that building a release involves creating digital
 signatures, so you will need a GPG key and a proper GPG configuration to run
-this task.
\ No newline at end of file
+this task.
diff --git a/launchers/marmotta-installer/assembly.xml b/launchers/marmotta-installer/assembly.xml
index 0e8fa6e..d097f07 100644
--- a/launchers/marmotta-installer/assembly.xml
+++ b/launchers/marmotta-installer/assembly.xml
@@ -48,15 +48,9 @@
             <fileMode>0644</fileMode>
         </file>
         <file>
-            <source>${project.basedir}/../../DISCLAIMER.txt</source>
-            <outputDirectory>/</outputDirectory>
-            <fileMode>0644</fileMode>
-            <filtered>true</filtered>
-        </file>
-        <file>
             <source>${project.build.directory}/marmotta-installer-${project.version}.jar</source>
             <outputDirectory>/</outputDirectory>
             <fileMode>0644</fileMode>
         </file>
     </files>
-</assembly>
\ No newline at end of file
+</assembly>
diff --git a/launchers/marmotta-installer/src/main/resources/installer/standalone.xml b/launchers/marmotta-installer/src/main/resources/installer/standalone.xml
index 7bff60e..f7735a7 100644
--- a/launchers/marmotta-installer/src/main/resources/installer/standalone.xml
+++ b/launchers/marmotta-installer/src/main/resources/installer/standalone.xml
@@ -29,7 +29,7 @@
         <appname>Apache Marmotta</appname>
         <appversion>${MARMOTTA_VERSION}</appversion>
         <appsubpath>marmotta</appsubpath>
-        <url>http://marmotta.incubator.apache.org</url>
+        <url>http://marmotta.apache.org</url>
         <authors>
             <author name="Sebastian Schaffert" email="sschaffert@apache.org" />
             <author name="Thomas Kurz" email="tkurz@apache.org" />
diff --git a/launchers/marmotta-splash/src/main/java/org/apache/marmotta/splash/systray/SystrayListener.java b/launchers/marmotta-splash/src/main/java/org/apache/marmotta/splash/systray/SystrayListener.java
index 8481aee..4ccf170 100644
--- a/launchers/marmotta-splash/src/main/java/org/apache/marmotta/splash/systray/SystrayListener.java
+++ b/launchers/marmotta-splash/src/main/java/org/apache/marmotta/splash/systray/SystrayListener.java
@@ -190,7 +190,7 @@
                     TaskDialogs.inform(null,
                             "About Apache Marmotta \n",
                             "(c)2013 The Apache Software Foundation \n" +
-                            "Visit http://marmotta.incubator.apache.org for further details");
+                            "Visit http://marmotta.apache.org for further details");
                 }
             });
             popup.add(about);
@@ -198,7 +198,7 @@
             MenuItem issues = createMenuItem("Issues Reports", "https://issues.apache.org/jira/browse/MARMOTTA");
             popup.add(issues);
 
-            MenuItem homepage = createMenuItem("Project Homepage", "http://marmotta.incubator.apache.org");
+            MenuItem homepage = createMenuItem("Project Homepage", "http://marmotta.apache.org");
             popup.add(homepage);
 
 
diff --git a/launchers/marmotta-webapp/assembly.xml b/launchers/marmotta-webapp/assembly.xml
index fdeccf1..cd76e27 100644
--- a/launchers/marmotta-webapp/assembly.xml
+++ b/launchers/marmotta-webapp/assembly.xml
@@ -43,12 +43,6 @@
             <filtered>true</filtered>
         </file>
         <file>
-            <source>${project.basedir}/../../DISCLAIMER.txt</source>
-            <outputDirectory>/</outputDirectory>
-            <fileMode>0644</fileMode>
-            <filtered>true</filtered>
-        </file>
-        <file>
             <source>${project.basedir}/src/main/webapp/META-INF/NOTICE</source>
             <destName>NOTICE.txt</destName>
             <outputDirectory>/</outputDirectory>
@@ -60,4 +54,4 @@
             <fileMode>0644</fileMode>
         </file>
     </files>
-</assembly>
\ No newline at end of file
+</assembly>
diff --git a/launchers/marmotta-webapp/src/main/doc/README.txt b/launchers/marmotta-webapp/src/main/doc/README.txt
index 014c7ad..b10b6a0 100644
--- a/launchers/marmotta-webapp/src/main/doc/README.txt
+++ b/launchers/marmotta-webapp/src/main/doc/README.txt
@@ -12,7 +12,7 @@
 The following sections give a short introduction how to deploy the Marmotta
 Web Application in your server. More detailed instructions are available at:
 
-http://marmotta.incubator.apache.org/installation.html
+http://marmotta.apache.org/installation.html
 
 
 1. Requirements
@@ -106,4 +106,4 @@
 Java drivers that are needed to access a MySQL database. In case you aim
 to use MySQL, please download the MySQL JDBC connector manually and place
 it either in the application server lib/ directory or in the WEB-INF/lib
-directory of Apache Marmotta.
\ No newline at end of file
+directory of Apache Marmotta.
diff --git a/launchers/marmotta-webapp/src/main/webapp/META-INF/DISCLAIMER b/launchers/marmotta-webapp/src/main/webapp/META-INF/DISCLAIMER
deleted file mode 100644
index 7391144..0000000
--- a/launchers/marmotta-webapp/src/main/webapp/META-INF/DISCLAIMER
+++ /dev/null
@@ -1,16 +0,0 @@
-Apache Marmotta is an effort undergoing incubation at the Apache Software
-Foundation (ASF), sponsored by the Apache Incubator PMC.
-
-Incubation is required of all newly accepted projects until a further review
-indicates that the infrastructure, communications, and decision making process
-have stabilized in a manner consistent with other successful ASF projects.
-
-While incubation status is not necessarily a reflection of the completeness
-or stability of the code, it does indicate that the project has yet to be
-fully endorsed by the ASF.
-
-For more information about the incubation status of the Marmotta project you
-can go to the following page:
-
-  http://marmotta.incubator.apache.org
-
diff --git a/libraries/kiwi/kiwi-versioning/src/test/java/org/apache/marmotta/kiwi/versioning/test/SnapshotRepositoryTest.java b/libraries/kiwi/kiwi-versioning/src/test/java/org/apache/marmotta/kiwi/versioning/test/SnapshotRepositoryTest.java
index 7cc52e3..fe9ba2c 100644
--- a/libraries/kiwi/kiwi-versioning/src/test/java/org/apache/marmotta/kiwi/versioning/test/SnapshotRepositoryTest.java
+++ b/libraries/kiwi/kiwi-versioning/src/test/java/org/apache/marmotta/kiwi/versioning/test/SnapshotRepositoryTest.java
@@ -193,7 +193,7 @@
 
         RepositoryConnection connectionBase = repository.getConnection();
         try {
-            connectionBase.add(baseData, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionBase.add(baseData, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionBase.commit();
         } finally {
             connectionBase.close();
@@ -211,7 +211,7 @@
 
         RepositoryConnection connectionUpdate1 = repository.getConnection();
         try {
-            connectionUpdate1.add(update1Data, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionUpdate1.add(update1Data, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionUpdate1.commit();
         } finally {
             connectionUpdate1.close();
@@ -230,7 +230,7 @@
 
         RepositoryConnection connectionUpdate2 = repository.getConnection();
         try {
-            connectionUpdate2.add(update2Data, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionUpdate2.add(update2Data, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionUpdate2.commit();
         } finally {
             connectionUpdate2.close();
@@ -240,12 +240,12 @@
         // test snapshot connection for date2 (i.e. after base import and before updates)
         RepositoryConnection snapshot1 = repository.getSnapshot(date2);
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R1, should be exactly 3
-        List<Statement> s1_r1_triples = asList(snapshot1.getStatements(repository.getValueFactory().createURI("http://marmotta.incubator.apache.org/testing/ns1/R1"), null, null, true));
+        // query all triples for http://marmotta.apache.org/testing/ns1/R1, should be exactly 3
+        List<Statement> s1_r1_triples = asList(snapshot1.getStatements(repository.getValueFactory().createURI("http://marmotta.apache.org/testing/ns1/R1"), null, null, true));
         Assert.assertEquals(3, s1_r1_triples.size());
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R2, should be zero
-        List<Statement> s1_r2_triples = asList(snapshot1.getStatements(repository.getValueFactory().createURI("http://marmotta.incubator.apache.org/testing/ns1/R2"), null, null, true));
+        // query all triples for http://marmotta.apache.org/testing/ns1/R2, should be zero
+        List<Statement> s1_r2_triples = asList(snapshot1.getStatements(repository.getValueFactory().createURI("http://marmotta.apache.org/testing/ns1/R2"), null, null, true));
         Assert.assertEquals(0, s1_r2_triples.size());
 
         snapshot1.commit();
@@ -254,12 +254,12 @@
         // test snapshot connection for date3 (i.e. after first update)
         RepositoryConnection snapshot2 = repository.getSnapshot(date3);
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R1, should be exactly 4
-        List<Statement> s2_r1_triples = asList(snapshot2.getStatements(repository.getValueFactory().createURI("http://marmotta.incubator.apache.org/testing/ns1/R1"), null, null, true));
+        // query all triples for http://marmotta.apache.org/testing/ns1/R1, should be exactly 4
+        List<Statement> s2_r1_triples = asList(snapshot2.getStatements(repository.getValueFactory().createURI("http://marmotta.apache.org/testing/ns1/R1"), null, null, true));
         Assert.assertEquals(3, s2_r1_triples.size());
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R2, should be 3
-        List<Statement> s2_r2_triples = asList(snapshot2.getStatements(repository.getValueFactory().createURI("http://marmotta.incubator.apache.org/testing/ns1/R2"), null, null, true));
+        // query all triples for http://marmotta.apache.org/testing/ns1/R2, should be 3
+        List<Statement> s2_r2_triples = asList(snapshot2.getStatements(repository.getValueFactory().createURI("http://marmotta.apache.org/testing/ns1/R2"), null, null, true));
         Assert.assertEquals(3, s2_r2_triples.size());
 
         snapshot2.commit();
@@ -269,12 +269,12 @@
         // test snapshot connection for now (i.e. after both updates)
         RepositoryConnection snapshot3 = repository.getSnapshot(new Date());
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R1, should be exactly 4
-        List<Statement> s3_r1_triples = asList(snapshot3.getStatements(repository.getValueFactory().createURI("http://marmotta.incubator.apache.org/testing/ns1/R1"), null, null, true));
+        // query all triples for http://marmotta.apache.org/testing/ns1/R1, should be exactly 4
+        List<Statement> s3_r1_triples = asList(snapshot3.getStatements(repository.getValueFactory().createURI("http://marmotta.apache.org/testing/ns1/R1"), null, null, true));
         Assert.assertEquals(4, s3_r1_triples.size());
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R2, should be 3
-        List<Statement> s3_r2_triples = asList(snapshot3.getStatements(repository.getValueFactory().createURI("http://marmotta.incubator.apache.org/testing/ns1/R2"), null, null, true));
+        // query all triples for http://marmotta.apache.org/testing/ns1/R2, should be 3
+        List<Statement> s3_r2_triples = asList(snapshot3.getStatements(repository.getValueFactory().createURI("http://marmotta.apache.org/testing/ns1/R2"), null, null, true));
         Assert.assertEquals(3, s3_r2_triples.size());
 
         snapshot3.commit();
@@ -296,7 +296,7 @@
 
         RepositoryConnection connectionBase = repository.getConnection();
         try {
-            connectionBase.add(baseData, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionBase.add(baseData, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionBase.commit();
         } finally {
             connectionBase.close();
@@ -314,7 +314,7 @@
 
         RepositoryConnection connectionUpdate1 = repository.getConnection();
         try {
-            connectionUpdate1.add(update1Data, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionUpdate1.add(update1Data, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionUpdate1.commit();
         } finally {
             connectionUpdate1.close();
@@ -333,7 +333,7 @@
 
         RepositoryConnection connectionUpdate2 = repository.getConnection();
         try {
-            connectionUpdate2.add(update2Data, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionUpdate2.add(update2Data, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionUpdate2.commit();
         } finally {
             connectionUpdate2.close();
@@ -343,12 +343,12 @@
         // test snapshot connection for date2 (i.e. after base import and before updates)
         RepositoryConnection snapshot1 = repository.getSnapshot(date2);
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R1, should be exactly 3
-        BooleanQuery query1_1 = snapshot1.prepareBooleanQuery(QueryLanguage.SPARQL, "ASK { <http://marmotta.incubator.apache.org/testing/ns1/R1> ?p ?o }");
+        // query all triples for http://marmotta.apache.org/testing/ns1/R1, should be exactly 3
+        BooleanQuery query1_1 = snapshot1.prepareBooleanQuery(QueryLanguage.SPARQL, "ASK { <http://marmotta.apache.org/testing/ns1/R1> ?p ?o }");
         Assert.assertTrue("SPARQL query for R1 did not return true", query1_1.evaluate());
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R2, should be zero
-        BooleanQuery query1_2 = snapshot1.prepareBooleanQuery(QueryLanguage.SPARQL, "ASK { <http://marmotta.incubator.apache.org/testing/ns1/R2> ?p ?o }");
+        // query all triples for http://marmotta.apache.org/testing/ns1/R2, should be zero
+        BooleanQuery query1_2 = snapshot1.prepareBooleanQuery(QueryLanguage.SPARQL, "ASK { <http://marmotta.apache.org/testing/ns1/R2> ?p ?o }");
         Assert.assertFalse("SPARQL query for R2 did not return false", query1_2.evaluate());
 
         snapshot1.commit();
@@ -357,12 +357,12 @@
         // test snapshot connection for date3 (i.e. after first update)
         RepositoryConnection snapshot2 = repository.getSnapshot(date3);
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R1, should be exactly 3
-        BooleanQuery query2_1 = snapshot2.prepareBooleanQuery(QueryLanguage.SPARQL, "ASK { <http://marmotta.incubator.apache.org/testing/ns1/R1> ?p ?o }");
+        // query all triples for http://marmotta.apache.org/testing/ns1/R1, should be exactly 3
+        BooleanQuery query2_1 = snapshot2.prepareBooleanQuery(QueryLanguage.SPARQL, "ASK { <http://marmotta.apache.org/testing/ns1/R1> ?p ?o }");
         Assert.assertTrue("SPARQL query for R1 did not return true", query2_1.evaluate());
 
-        // query all triples for http://marmotta.incubator.apache.org/testing/ns1/R2, should be 3
-        BooleanQuery query2_2 = snapshot2.prepareBooleanQuery(QueryLanguage.SPARQL, "ASK { <http://marmotta.incubator.apache.org/testing/ns1/R2> ?p ?o }");
+        // query all triples for http://marmotta.apache.org/testing/ns1/R2, should be 3
+        BooleanQuery query2_2 = snapshot2.prepareBooleanQuery(QueryLanguage.SPARQL, "ASK { <http://marmotta.apache.org/testing/ns1/R2> ?p ?o }");
         Assert.assertTrue("SPARQL query for R2 did not return true", query2_2.evaluate());
 
         snapshot2.commit();
diff --git a/libraries/kiwi/kiwi-versioning/src/test/java/org/apache/marmotta/kiwi/versioning/test/VersioningRepositoryTest.java b/libraries/kiwi/kiwi-versioning/src/test/java/org/apache/marmotta/kiwi/versioning/test/VersioningRepositoryTest.java
index f0b720a..d008829 100644
--- a/libraries/kiwi/kiwi-versioning/src/test/java/org/apache/marmotta/kiwi/versioning/test/VersioningRepositoryTest.java
+++ b/libraries/kiwi/kiwi-versioning/src/test/java/org/apache/marmotta/kiwi/versioning/test/VersioningRepositoryTest.java
@@ -195,7 +195,7 @@
 
         RepositoryConnection connectionBase = repository.getConnection();
         try {
-            connectionBase.add(baseData, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionBase.add(baseData, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionBase.commit();
         } finally {
             connectionBase.close();
@@ -213,7 +213,7 @@
 
         RepositoryConnection connectionUpdate1 = repository.getConnection();
         try {
-            connectionUpdate1.add(update1Data, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionUpdate1.add(update1Data, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionUpdate1.commit();
         } finally {
             connectionUpdate1.close();
@@ -225,7 +225,7 @@
 
         RepositoryConnection connectionUpdate2 = repository.getConnection();
         try {
-            connectionUpdate2.add(update2Data, "http://marmotta.incubator.apache.org/testing/ns1/", RDFFormat.RDFXML);
+            connectionUpdate2.add(update2Data, "http://marmotta.apache.org/testing/ns1/", RDFFormat.RDFXML);
             connectionUpdate2.commit();
         } finally {
             connectionUpdate2.close();
diff --git a/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-base.rdf b/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-base.rdf
index b21cdb7..5aa11aa 100644
--- a/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-base.rdf
+++ b/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-base.rdf
@@ -17,8 +17,8 @@
 -->
 <rdf:RDF
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-        xmlns:ns1="http://marmotta.incubator.apache.org/testing/ns1/">
-    <ns1:C rdf:about="http://marmotta.incubator.apache.org/testing/ns1/R1">
+        xmlns:ns1="http://marmotta.apache.org/testing/ns1/">
+    <ns1:C rdf:about="http://marmotta.apache.org/testing/ns1/R1">
         <ns1:P1>property 1 value 1</ns1:P1>
         <ns1:P2>property 2 value 1</ns1:P2>
     </ns1:C>
diff --git a/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-update1.rdf b/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-update1.rdf
index d7d3ab4..9e671ef 100644
--- a/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-update1.rdf
+++ b/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-update1.rdf
@@ -17,8 +17,8 @@
 -->
 <rdf:RDF
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-        xmlns:ns1="http://marmotta.incubator.apache.org/testing/ns1/">
-    <ns1:C rdf:about="http://marmotta.incubator.apache.org/testing/ns1/R2">
+        xmlns:ns1="http://marmotta.apache.org/testing/ns1/">
+    <ns1:C rdf:about="http://marmotta.apache.org/testing/ns1/R2">
         <ns1:P1>property 1 value 2</ns1:P1>
         <ns1:P3>property 3 value 2</ns1:P3>
     </ns1:C>
diff --git a/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-update2.rdf b/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-update2.rdf
index 913b6a3..2d50df9 100644
--- a/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-update2.rdf
+++ b/libraries/kiwi/kiwi-versioning/src/test/resources/org/apache/marmotta/kiwi/versioning/test/version-update2.rdf
@@ -17,8 +17,8 @@
 -->
 <rdf:RDF
         xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-        xmlns:ns1="http://marmotta.incubator.apache.org/testing/ns1/">
-    <ns1:C rdf:about="http://marmotta.incubator.apache.org/testing/ns1/R1">
+        xmlns:ns1="http://marmotta.apache.org/testing/ns1/">
+    <ns1:C rdf:about="http://marmotta.apache.org/testing/ns1/R1">
         <ns1:P3>property 3 value 1</ns1:P3>
     </ns1:C>
 
diff --git a/libraries/ldpath/ldpath-backend-linkeddata/assembly.xml b/libraries/ldpath/ldpath-backend-linkeddata/assembly.xml
index 7d04b45..9e7e5eb 100644
--- a/libraries/ldpath/ldpath-backend-linkeddata/assembly.xml
+++ b/libraries/ldpath/ldpath-backend-linkeddata/assembly.xml
@@ -48,15 +48,9 @@
             <fileMode>0644</fileMode>
         </file>
         <file>
-            <source>${project.basedir}/../../../DISCLAIMER.txt</source>
-            <outputDirectory>/</outputDirectory>
-            <fileMode>0644</fileMode>
-            <filtered>true</filtered>
-        </file>
-        <file>
             <source>${project.build.directory}/ldpath-${project.version}.jar</source>
             <outputDirectory>/</outputDirectory>
             <fileMode>0644</fileMode>
         </file>
     </files>
-</assembly>
\ No newline at end of file
+</assembly>
diff --git a/libraries/ldpath/ldpath-backend-linkeddata/src/main/doc/README.txt b/libraries/ldpath/ldpath-backend-linkeddata/src/main/doc/README.txt
index d772784..86b17f5 100644
--- a/libraries/ldpath/ldpath-backend-linkeddata/src/main/doc/README.txt
+++ b/libraries/ldpath/ldpath-backend-linkeddata/src/main/doc/README.txt
@@ -1,3 +1,4 @@
+
 LDPath Linked Data Backend
 ==========================
 
@@ -31,7 +32,7 @@
 LDPath allows for very complex path expression. The full language documen-
 tation is available at:
 
-http://marmotta.incubator.apache.org/ldpath/language.html
+http://marmotta.apache.org/ldpath/language.html
 
 
 2. Path Programs
@@ -77,7 +78,7 @@
 
 A full list of supported providers with usage instructions is given on:
 
-http://marmotta.incubator.apache.org/ldclient/modules.html
+http://marmotta.apache.org/ldclient/modules.html
 
 
 
diff --git a/platform/marmotta-core/src/main/resources/config-defaults.properties b/platform/marmotta-core/src/main/resources/config-defaults.properties
index 6a5dcc8..0432b63 100644
--- a/platform/marmotta-core/src/main/resources/config-defaults.properties
+++ b/platform/marmotta-core/src/main/resources/config-defaults.properties
@@ -57,7 +57,7 @@
 kiwi.pages.project.custom.logo = core/public/img/logo/custom-logo.png
 
 # lmf footer
-kiwi.pages.project.custom.footer = Your Footer powered by <a href="http://marmotta.incubator.apache.org/">Apache Marmotta</a>.
+kiwi.pages.project.custom.footer = Your Footer powered by <a href="http://marmotta.apache.org/">Apache Marmotta</a>.
 
 # supported styles
 kiwi.pages.style_path = core/public/style/blue/
diff --git a/platform/marmotta-core/src/main/resources/web/admin/about.html b/platform/marmotta-core/src/main/resources/web/admin/about.html
index 743a39e..51e055f 100644
--- a/platform/marmotta-core/src/main/resources/web/admin/about.html
+++ b/platform/marmotta-core/src/main/resources/web/admin/about.html
@@ -30,7 +30,7 @@
     An Open Platform for Linked Data
 </h2>
 <p>The goal of Apache Marmotta is to provide an open implementation of a Linked Data Platform that can be used, extended, and deployed easily by organizations who want to publish Linked Data or build custom applications on Linked Data.</p>
-<p>You can find more information about the project and the supported features on <a href="http://marmotta.incubator.apache.org/">http://marmotta.incubator.apache.org</a>.</p>
+<p>You can find more information about the project and the supported features on <a href="http://marmotta.apache.org/">http://marmotta.apache.org</a>.</p>
 <h2>
     Links to common features
 </h2>
diff --git a/pom.xml b/pom.xml
index 26e6cd7..b65d4ad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
 
     <name>Apache Marmotta</name>
     <description>Open implementation of the Linked Data Platform</description>
-    <url>http://marmotta.incubator.apache.org</url>
+    <url>http://marmotta.apache.org</url>
 
     <prerequisites>
         <maven>3.0.3</maven>
@@ -109,9 +109,9 @@
     </organization>
 
     <scm>
-        <url>https://git-wip-us.apache.org/repos/asf/incubator-marmotta.git</url>
-        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-marmotta.git</connection>
-        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-marmotta.git</developerConnection>
+        <url>https://git-wip-us.apache.org/repos/asf/marmotta.git</url>
+        <connection>scm:git:https://git-wip-us.apache.org/repos/asf/marmotta.git</connection>
+        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/marmotta.git</developerConnection>
       <tag>3.0.0-incubating</tag>
   </scm>
 
@@ -123,30 +123,30 @@
     <mailingLists>
         <mailingList>
             <name>users</name>
-            <post>users@marmotta.incubator.apache.org</post>
-            <subscribe>users-subscribe@marmotta.incubator.apache.org</subscribe>
-            <unsubscribe>users-unsubscribe@marmotta.incubator.apache.org</unsubscribe>
-            <archive>http://mail-archives.apache.org/mod_mbox/incubator-marmotta-users/</archive>
+            <post>users@marmotta.apache.org</post>
+            <subscribe>users-subscribe@marmotta.apache.org</subscribe>
+            <unsubscribe>users-unsubscribe@marmotta.apache.org</unsubscribe>
+            <archive>http://mail-archives.apache.org/mod_mbox/marmotta-users/</archive>
             <otherArchives>
                 <otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.marmotta.users</otherArchive>
             </otherArchives>
         </mailingList>
         <mailingList>
             <name>dev</name>
-            <post>dev@marmotta.incubator.apache.org</post>
-            <subscribe>dev-subscribe@marmotta.incubator.apache.org</subscribe>
-            <unsubscribe>dev-unsubscribe@marmotta.incubator.apache.org</unsubscribe>
-            <archive>http://mail-archives.apache.org/mod_mbox/incubator-marmotta-dev/</archive>
+            <post>dev@marmotta.apache.org</post>
+            <subscribe>dev-subscribe@marmotta.apache.org</subscribe>
+            <unsubscribe>dev-unsubscribe@marmotta.apache.org</unsubscribe>
+            <archive>http://mail-archives.apache.org/mod_mbox/marmotta-dev/</archive>
             <otherArchives>
                 <otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.marmotta.dev</otherArchive>
             </otherArchives>
         </mailingList>
         <mailingList>
             <name>commits</name>
-            <post>commits@marmotta.incubator.apache.org</post>
-            <subscribe>commits-subscribe@marmotta.incubator.apache.org</subscribe>
-            <unsubscribe>commits-unsubscribe@marmotta.incubator.apache.org</unsubscribe>
-            <archive>http://mail-archives.apache.org/mod_mbox/incubator-marmotta-commits/</archive>
+            <post>commits@marmotta.apache.org</post>
+            <subscribe>commits-subscribe@marmotta.apache.org</subscribe>
+            <unsubscribe>commits-unsubscribe@marmotta.apache.org</unsubscribe>
+            <archive>http://mail-archives.apache.org/mod_mbox/marmotta-commits/</archive>
             <otherArchives>
                 <otherArchive>http://markmail.org/search/?q=list%3Aorg.apache.marmotta.commits</otherArchive>
             </otherArchives>
@@ -339,16 +339,16 @@
                                         <checksum file="${basedir}/target/${project.version}/apache-marmotta-${project.version}-webapp.tar.gz" algorithm="SHA1" property="checksum.webapp.tgz" />
                                         <echo file="${basedir}/target/vote.txt">
 From: ${username}@apache.org
-To: dev@marmotta.incubator.apache.org
+To: dev@marmotta.apache.org
 Subject: [VOTE] Release Apache Marmotta ${project.version}
 
 A candidate for the Marmotta ${project.version} release is available at:
 
-https://dist.apache.org/repos/dist/dev/incubator/marmotta/${project.version}/
+https://dist.apache.org/repos/dist/dev/marmotta/${project.version}/
 
 The release candidate is based on the sources tagged with ${project.version} in:
 
-https://git-wip-us.apache.org/repos/asf/incubator-marmotta.git
+https://git-wip-us.apache.org/repos/asf/marmotta.git
 
 The release candidate consists of the following source distribution archives:
 - apache-marmotta-${project.version}-src.[zip|tar.gz]
@@ -384,7 +384,7 @@
 
 ${basedir}/target/${project.version}
 
-Please deploy it to https://dist.apache.org/repos/dist/dev/incubator/marmotta/:
+Please deploy it to https://dist.apache.org/repos/dist/dev/marmotta/:
 
 cd /path/to/marmotta-dev
 mv ${basedir}/target/${project.version} ${project.version}
