diff --git a/backtrader/lineiterator.py b/backtrader/lineiterator.py
index 3aad26af1..7ed6fdfbb 100644
--- a/backtrader/lineiterator.py
+++ b/backtrader/lineiterator.py
@@ -22,6 +22,10 @@
                         unicode_literals)
 
 import collections
+try:
+    collectionsAbc = collections.abc
+except AttributeError:
+    collectionsAbc = collections
 import operator
 import sys
 
@@ -226,7 +230,7 @@ def bindlines(self, owner=None, own=None):
 
         if isinstance(owner, string_types):
             owner = [owner]
-        elif not isinstance(owner, collections.Iterable):
+        elif not isinstance(owner, collectionsAbc.Iterable):
             owner = [owner]
 
         if not own:
@@ -234,7 +238,7 @@ def bindlines(self, owner=None, own=None):
 
         if isinstance(own, string_types):
             own = [own]
-        elif not isinstance(own, collections.Iterable):
+        elif not isinstance(own, collectionsAbc.Iterable):
             own = [own]
 
         for lineowner, lineown in zip(owner, own):