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..684fd2b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
     <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>
@@ -59,6 +59,7 @@
 		<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>
@@ -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>
