diff --git a/asterix-installer/pom.xml b/asterix-installer/pom.xml
index c24a2e4..ed87902 100644
--- a/asterix-installer/pom.xml
+++ b/asterix-installer/pom.xml
@@ -17,7 +17,7 @@
 	<artifactId>asterix-installer</artifactId>
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-		<test.excludes>**/DmlRecoveryIT.java</test.excludes>
+		<failsafe.test.excludes>**/DmlRecoveryIT.java</failsafe.test.excludes>
 	</properties>
 
 	<build>
@@ -108,7 +108,7 @@
 					<runOrder>alphabetical</runOrder>
 					<forkMode>pertest</forkMode>
 					<excludes>
-						<exclude>${test.excludes}</exclude>
+						<exclude>${failsafe.test.excludes}</exclude>
 					</excludes>
 				</configuration>
 				<executions>
diff --git a/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/context/TestCaseContext.java b/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/context/TestCaseContext.java
index ba7d02a..eb096bd 100644
--- a/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/context/TestCaseContext.java
+++ b/asterix-test-framework/src/main/java/edu/uci/ics/asterix/testframework/context/TestCaseContext.java
@@ -130,7 +130,9 @@
     }
 
     public static class Builder {
+        private final boolean m_doSlow;
         public Builder() {
+            m_doSlow = System.getProperty("runSlowAQLTests", "false").equals("true");
         }
 
         public List<TestCaseContext> build(File tsRoot) throws Exception {
@@ -157,10 +159,9 @@
         }
 
         private void addContexts(File tsRoot, TestSuite ts, List<TestGroup> tgPath, List<TestCaseContext> tccs) {
-            boolean doSlow = System.getProperty("runSlowAQLTests") != null;
             TestGroup tg = tgPath.get(tgPath.size() - 1);
             for (TestCase tc : tg.getTestCase()) {
-                if (doSlow || tc.getCategory() != CategoryEnum.SLOW) {
+                if (m_doSlow || tc.getCategory() != CategoryEnum.SLOW) {
                     tccs.add(new TestCaseContext(tsRoot, ts, tgPath.toArray(new TestGroup[tgPath.size()]), tc));
                 }
             }
diff --git a/pom.xml b/pom.xml
index 1585923..2b059b8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,15 +24,15 @@
     <algebricks.version>0.2.11-SNAPSHOT</algebricks.version>
     <hyracks.version>0.2.11-SNAPSHOT</hyracks.version>
     <jvm.extraargs />
-    <skipSlowTests>true</skipSlowTests>
+    <runSlowAQLTests>false</runSlowAQLTests>
 
     <!-- Definition of tests in various categories which may be excluded -->
     <optimizer.tests>**/optimizer/**/*Test.java</optimizer.tests>
     <metadata.tests>**/metadata/*Test.java</metadata.tests>
     <execution.tests>**/ExecutionTest.java</execution.tests>
     <invalid.tests>**/DmlTest.java</invalid.tests>
-    <test.includes>**/*TestSuite.java,**/*Test.java</test.includes>
-    <test.excludes>${optimizer.tests},${metadata.tests},${execution.tests},${invalid.tests}</test.excludes>
+    <global.test.includes>**/*TestSuite.java,**/*Test.java</global.test.includes>
+    <global.test.excludes>${optimizer.tests},${metadata.tests},${execution.tests},${invalid.tests}</global.test.excludes>
   </properties>
 
 	<build>
@@ -59,13 +59,14 @@
 		<argLine>-enableassertions -Xmx${test.heap.size}m
 		-Dfile.encoding=UTF-8
 		-Djava.util.logging.config.file=${user.home}/logging.properties
+                -DrunSlowAQLTests=${runSlowAQLTests}
 		-Xdebug
 		-Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n</argLine>
 		<includes>
-		  <include>${test.includes}</include>
+		  <include>${global.test.includes},${test.includes}</include>
 		</includes>
                 <excludes>
-                  <exclude>${test.excludes}</exclude>
+                  <exclude>${global.test.excludes},${test.excludes}</exclude>
                 </excludes>
 	      </configuration>
 	    </plugin>
@@ -90,6 +91,12 @@
 
     <profiles>
       <profile>
+        <id>slow-aql-tests</id>
+        <properties>
+          <runSlowAQLTests>true</runSlowAQLTests>
+        </properties>
+      </profile>
+      <profile>
         <id>optimizer-tests</id>
         <properties>
           <optimizer.tests />
@@ -139,13 +146,6 @@
           </properties>
         </profile>
 
-        <profile>
-          <id>slow</id>
-          <properties>
-            <skipSlowTests>false</skipSlowTests>
-          </properties>
-        </profile>
-
     </profiles>
 
 	<modules>
