diff --git a/src/com/android/se/SecureElementService.java b/src/com/android/se/SecureElementService.java
index 480141a..6f72377 100644
--- a/src/com/android/se/SecureElementService.java
+++ b/src/com/android/se/SecureElementService.java
@@ -158,7 +158,9 @@
             do {
                 name = terminalName + Integer.toString(index);
                 Terminal terminal = new Terminal(name, this);
-                terminal.initialize();
+
+                // Only retry on fail for the first terminal of each type.
+                terminal.initialize(index == 1);
                 mTerminals.put(name, terminal);
             } while (++index > 0);
         } catch (NoSuchElementException e) {
diff --git a/src/com/android/se/Terminal.java b/src/com/android/se/Terminal.java
index e17ac88..d21c323 100644
--- a/src/com/android/se/Terminal.java
+++ b/src/com/android/se/Terminal.java
@@ -160,7 +160,7 @@
             switch (message.what) {
                 case EVENT_GET_HAL:
                     try {
-                        initialize();
+                        initialize(true);
                     } catch (Exception e) {
                         Log.e(mTag, mName + " could not be initialized again");
                         sendMessageDelayed(obtainMessage(EVENT_GET_HAL, 0),
@@ -185,18 +185,19 @@
      * @throws NoSuchElementException if there is no HAL implementation for the specified SE name
      * @throws RemoteException if there is a failure communicating with the remote
      */
-    public void initialize() throws NoSuchElementException, RemoteException {
+    public void initialize(boolean retryOnFail) throws NoSuchElementException, RemoteException {
         synchronized (mLock) {
             android.hardware.secure_element.V1_1.ISecureElement seHal11 = null;
             try {
                 seHal11 =
-                        android.hardware.secure_element.V1_1.ISecureElement.getService(mName, true);
+                        android.hardware.secure_element.V1_1.ISecureElement.getService(mName,
+                                                                                       retryOnFail);
             } catch (Exception e) {
                 Log.d(mTag, "SE Hal V1.1 is not supported");
             }
 
             if (seHal11 == null) {
-                mSEHal = ISecureElement.getService(mName, true);
+                mSEHal = ISecureElement.getService(mName, retryOnFail);
                 if (mSEHal == null) {
                     throw new NoSuchElementException("No HAL is provided for " + mName);
                 }
