diff --git a/src/jdk15/org/testng/util/RetryAnalyzerCount.java b/src/jdk15/org/testng/util/RetryAnalyzerCount.java
new file mode 100644
index 0000000..b2f5746
--- /dev/null
+++ b/src/jdk15/org/testng/util/RetryAnalyzerCount.java
@@ -0,0 +1,48 @@
+package org.testng.util;
+
+import org.testng.IRetryAnalyzer;
+import org.testng.ITestResult;
+
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * An implementation of IRetryAnalyzer that allows you to specify
+ * the maximum number of times you want your test to be retried.
+ * 
+ * @author tocman@gmail.com (Jeremie Lenfant-Engelmann)
+ */
+public abstract class RetryAnalyzerCount implements IRetryAnalyzer {
+
+  // Default retry once.
+  AtomicInteger count = new AtomicInteger(1);
+
+  /**
+   * Set the max number of time the method needs to be retried.
+   * @param count
+   */
+  protected void setCount(int count) {
+    this.count.set(count);
+  }
+
+  /**
+   * Retries the test if count is not 0. 
+   * @param result The result of the test.
+   */
+  public boolean retry(ITestResult result) {
+    boolean retry = false;
+
+    if (count.intValue() > 0) {
+      retry = retryMethod(result);
+      count.decrementAndGet();
+    }
+    return retry;
+  }
+
+  /**
+   * The method implemented by the class that test if the test
+   * must be retried or not.
+   * @param result The result of the test.
+   * @return true if the test must be retried, false otherwise.
+   */
+  public abstract boolean retryMethod(ITestResult result);
+}
