diff --git a/README b/README
index 401302a..10f4a10 100644
--- a/README
+++ b/README
@@ -48,14 +48,6 @@
   to MapReduce) Giraph could use. You may tell maven to use this version
   with "mvn -Phadoop_2 <goals>".
 
-- Apache Hadoop 0.23.1
-
-  You may tell maven to use this version with "mvn -Phadoop_0.23 <goals>".
-
-- Apache Hadoop 0.20.203.0
-
-  You may tell maven to use this version with "mvn -Phadoop_0.20.203 <goals>".
-
 - Apache Hadoop Yarn with 2.2.0
 
   You may tell maven to use this version with "mvn -Phadoop_yarn -Dhadoop.version=2.2.0 <goals>".
@@ -66,10 +58,6 @@
 
 Unsecure Hadoop versions:
 
-- Apache Hadoop 0.20.1, 0.20.2, 0.20.3
-
-  You may tell maven to use 0.20.2 with "mvn -Phadoop_non_secure <goals>".
-
 - Facebook Hadoop releases: https://github.com/facebook/hadoop-20, Master branch
 
   You may tell maven to use this version with "mvn -Phadoop_facebook <goals>"
diff --git a/giraph-core/src/main/java/org/apache/giraph/io/internal/WrappedEdgeOutputFormat.java b/giraph-core/src/main/java/org/apache/giraph/io/internal/WrappedEdgeOutputFormat.java
index d257254..988e556 100644
--- a/giraph-core/src/main/java/org/apache/giraph/io/internal/WrappedEdgeOutputFormat.java
+++ b/giraph-core/src/main/java/org/apache/giraph/io/internal/WrappedEdgeOutputFormat.java
@@ -150,7 +150,6 @@
             HadoopUtils.makeJobContext(getConf(), context));
       }
 
-/*if_not[HADOOP_NON_COMMIT_JOB]*/
       @Override
       public void commitJob(JobContext context) throws IOException {
         outputCommitter.commitJob(
@@ -163,7 +162,6 @@
         outputCommitter.abortJob(
             HadoopUtils.makeJobContext(getConf(), context), state);
       }
-/*end[HADOOP_NON_COMMIT_JOB]*/
     };
   }
 }
diff --git a/giraph-core/src/main/java/org/apache/giraph/io/internal/WrappedVertexOutputFormat.java b/giraph-core/src/main/java/org/apache/giraph/io/internal/WrappedVertexOutputFormat.java
index efdc061..06771c4 100644
--- a/giraph-core/src/main/java/org/apache/giraph/io/internal/WrappedVertexOutputFormat.java
+++ b/giraph-core/src/main/java/org/apache/giraph/io/internal/WrappedVertexOutputFormat.java
@@ -26,9 +26,7 @@
 import org.apache.hadoop.io.Writable;
 import org.apache.hadoop.io.WritableComparable;
 import org.apache.hadoop.mapreduce.JobContext;
-/*if_not[HADOOP_NON_COMMIT_JOB]*/
 import org.apache.hadoop.mapreduce.JobStatus;
-/*end[HADOOP_NON_COMMIT_JOB]*/
 import org.apache.hadoop.mapreduce.OutputCommitter;
 import org.apache.hadoop.mapreduce.TaskAttemptContext;
 
@@ -149,7 +147,6 @@
             HadoopUtils.makeJobContext(getConf(), context));
       }
 
-/*if_not[HADOOP_NON_COMMIT_JOB]*/
       @Override
       public void commitJob(JobContext context) throws IOException {
         outputCommitter.commitJob(
@@ -162,7 +159,6 @@
         outputCommitter.abortJob(
             HadoopUtils.makeJobContext(getConf(), context), state);
       }
-/*end[HADOOP_NON_COMMIT_JOB]*/
     };
   }
 }
diff --git a/pom.xml b/pom.xml
index 758876e..1e1f295 100644
--- a/pom.xml
+++ b/pom.xml
@@ -996,56 +996,6 @@
         </plugins>
       </build>
     </profile>
-    <profile>
-      <id>hadoop_0.20.203</id>
-      <modules>
-        <module>giraph-accumulo</module>
-        <module>giraph-hbase</module>
-        <module>giraph-hcatalog</module>
-        <module>giraph-gora</module>
-        <module>giraph-rexster</module>
-        <module>giraph-dist</module>
-      </modules>
-      <properties>
-        <hadoop.version>0.20.203.0</hadoop.version>
-        <munge.symbols>HADOOP_NON_JOBCONTEXT_IS_INTERFACE,HADOOP_1_SECURITY,HADOOP_1_SECRET_MANAGER,STATIC_SASL_SYMBOL</munge.symbols>
-      </properties>
-      <dependencies>
-        <!-- sorted lexicographically -->
-        <dependency>
-          <groupId>commons-net</groupId>
-          <artifactId>commons-net</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-core</artifactId>
-          <version>${hadoop.version}</version>
-          <scope>provided</scope>
-          <exclusions>
-            <exclusion>
-              <groupId>org.eclipse.jdt</groupId>
-              <artifactId>core</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>org.mortbay.jetty</groupId>
-              <artifactId>jetty</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>org.mortbay.jetty</groupId>
-              <artifactId>jsp-api-2.1</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>tomcat</groupId>
-              <artifactId>jasper-compiler</artifactId>
-            </exclusion>
-            <exclusion>
-              <groupId>tomcat</groupId>
-              <artifactId>jasper-runtime</artifactId>
-            </exclusion>
-          </exclusions>
-        </dependency>
-      </dependencies>
-    </profile>
 
     <profile>
       <id>hadoop_1</id>
@@ -1104,34 +1054,6 @@
     </profile>
 
     <profile>
-      <id>hadoop_non_secure</id>
-      <modules>
-        <module>giraph-accumulo</module>
-        <module>giraph-hbase</module>
-        <module>giraph-hcatalog</module>
-        <module>giraph-rexster</module>
-        <module>giraph-dist</module>
-      </modules>
-      <properties>
-        <hadoop.version>0.20.2</hadoop.version>
-        <munge.symbols>HADOOP_NON_SECURE,HADOOP_NON_JOBCONTEXT_IS_INTERFACE,HADOOP_NON_COMMIT_JOB,STATIC_SASL_SYMBOL</munge.symbols>
-      </properties>
-      <dependencies>
-        <!-- sorted lexicographically -->
-        <dependency>
-          <groupId>commons-collections</groupId>
-          <artifactId>commons-collections</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-core</artifactId>
-          <version>${hadoop.version}</version>
-          <scope>provided</scope>
-        </dependency>
-      </dependencies>
-    </profile>
-
-    <profile>
       <id>hadoop_facebook</id>
       <modules>
         <module>giraph-block-app-8</module>
@@ -1162,101 +1084,6 @@
       </dependencies>
     </profile>
 
-    <profile>
-      <id>hadoop_0.23</id>
-      <modules>
-        <module>giraph-dist</module>
-      </modules>
-      <properties>
-        <hadoop.version>0.23.1</hadoop.version>
-        <munge.symbols>HADOOP_1_SECRET_MANAGER,STATIC_SASL_SYMBOL</munge.symbols>
-        <!-- TODO: add these checks eventually -->
-        <project.enforcer.skip>true</project.enforcer.skip>
-        <giraph.maven.dependency.plugin.skip>true</giraph.maven.dependency.plugin.skip>
-        <giraph.maven.duplicate.finder.skip>true</giraph.maven.duplicate.finder.skip>
-      </properties>
-      <dependencies>
-        <!-- sorted lexicographically -->
-        <dependency>
-          <groupId>commons-net</groupId>
-          <artifactId>commons-net</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-common</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-mapreduce-client-common</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-mapreduce-client-core</artifactId>
-        </dependency>
-      </dependencies>
-    </profile>
-
-    <profile>
-      <id>hadoop_cdh4.1.2</id>
-      <modules>
-        <module>giraph-dist</module>
-      </modules>
-      <properties>
-        <hadoop.version>2.0.0-cdh4.1.2</hadoop.version> 
-        <munge.symbols>HADOOP_1_SECRET_MANAGER,STATIC_SASL_SYMBOL</munge.symbols>
-        <!-- TODO: add these checks eventually -->
-        <project.enforcer.skip>true</project.enforcer.skip>
-        <giraph.maven.dependency.plugin.skip>true</giraph.maven.dependency.plugin.skip>
-        <giraph.maven.duplicate.finder.skip>true</giraph.maven.duplicate.finder.skip>
-      </properties>
-      <dependencies>
-        <dependency>
-          <groupId>commons-net</groupId>
-          <artifactId>commons-net</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-mapreduce-client-shuffle</artifactId>
-          <version>${hadoop.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-mapreduce-client-jobclient</artifactId>
-          <version>${hadoop.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-mapreduce-client-hs</artifactId>
-          <version>${hadoop.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-mapreduce-client-core</artifactId>
-          <version>${hadoop.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-mapreduce-client-common</artifactId>
-          <version>${hadoop.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-common</artifactId>
-          <version>${hadoop.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-auth</artifactId>
-          <version>${hadoop.version}</version>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-client</artifactId>
-          <version>${hadoop.version}</version>
-        </dependency>
-      </dependencies>
-    </profile>
-
     <!-- This profile runs on Hadoop-2.0.3-alpha by default, but does not
       use Hadoop MapReduce v2 to set up the Giraph job. This means the Giraph
       worker/master tasks are not Mappers. Tasks are run in YARN-managed execution
@@ -1318,48 +1145,6 @@
       </dependencies>
     </profile>
 
-    <profile>
-       <id>2.1.1-SNAPSHOT</id>
-       <modules>
-         <module>giraph-dist</module>
-       </modules>
-       <properties>
-         <hadoop.version>2.1.1-SNAPSHOT</hadoop.version>
-         <munge.symbols>STATIC_SASL_SYMBOL</munge.symbols>
-         <!-- TODO: add these checks eventually -->
-         <project.enforcer.skip>true</project.enforcer.skip>
-         <giraph.maven.dependency.plugin.skip>true</giraph.maven.dependency.plugin.skip>
-         <giraph.maven.duplicate.finder.skip>true</giraph.maven.duplicate.finder.skip>
-       </properties>
-       <dependencies>
-         <!-- sorted lexicographically -->
-        <dependency>
-          <groupId>commons-configuration</groupId>
-          <artifactId>commons-configuration</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>commons-httpclient</groupId>
-          <artifactId>commons-httpclient</artifactId>
-        </dependency>
-        <dependency>
-          <groupId>org.apache.hadoop</groupId>
-          <artifactId>hadoop-auth</artifactId>
-        </dependency>
-         <dependency>
-           <groupId>org.apache.hadoop</groupId>
-           <artifactId>hadoop-common</artifactId>
-         </dependency>
-         <dependency>
-           <groupId>org.apache.hadoop</groupId>
-           <artifactId>hadoop-mapreduce-client-common</artifactId>
-         </dependency>
-         <dependency>
-           <groupId>org.apache.hadoop</groupId>
-           <artifactId>hadoop-mapreduce-client-core</artifactId>
-         </dependency>
-       </dependencies>
-     </profile>
-
     <!-- Help keep future Hadoop versions munge-free:
          All profiles below are munge-free: avoid introducing any munge
          flags on any of the following profiles. -->
