diff --git a/dist/diffhtml.js b/dist/diffhtml.js
index <HASH>..<HASH> 100644
--- a/dist/diffhtml.js
+++ b/dist/diffhtml.js
@@ -1270,11 +1270,10 @@ function process(element, patches) {
         }));
       }
     }
-
     // Added state for transitions API.
-    if (states && states.attached && states.attached.length) {
-      addPromises(states.attached.map(callCallback, element));
-    }
+    else if (states && states.attached && states.attached.length) {
+        addPromises(states.attached.map(callCallback, element));
+      }
 
     // Call all `childNodes` attached callbacks as well.
     el.childNodes.forEach(attachedTransitionAndTitle);
diff --git a/lib/patches/process.js b/lib/patches/process.js
index <HASH>..<HASH> 100644
--- a/lib/patches/process.js
+++ b/lib/patches/process.js
@@ -31,9 +31,8 @@ export default function process(element, patches) {
         }));
       }
     }
-
     // Added state for transitions API.
-    if (states && states.attached && states.attached.length) {
+    else if (states && states.attached && states.attached.length) {
       addPromises(states.attached.map(callCallback, element));
     }
Don't trigger attached for text nodes