diff --git a/symengine/lib/symengine_wrapper.pyx b/symengine/lib/symengine_wrapper.pyx
index a9b2ea9df..07d2af6f8 100644
--- a/symengine/lib/symengine_wrapper.pyx
+++ b/symengine/lib/symengine_wrapper.pyx
@@ -741,8 +741,12 @@ def get_dict(*args):
                 len(args))
     if isinstance(arg, DictBasic):
         return arg
-    for k, v in arg.items():
-        D.add(k, v)
+    if isinstance(arg, dict):
+        for k, v in arg.items():
+            D.add(k, v)
+    else:
+        for k, v in arg:
+            D.add(k, v)
     return D
 
 
diff --git a/symengine/tests/test_subs.py b/symengine/tests/test_subs.py
index 2f762ddf6..6f29d8f3a 100644
--- a/symengine/tests/test_subs.py
+++ b/symengine/tests/test_subs.py
@@ -27,6 +27,10 @@ def test_args():
     e = cos(x)
     raises(TypeError, lambda: e.subs(x, 0, 3))
 
+    y = Symbol("y")
+    e = x + y
+    assert e.subs([(x, 0), (y, 2)]) == 2
+
 
 def test_f():
     x = Symbol("x")