diff --git a/kwant/builder.py b/kwant/builder.py
index 320613af56a93b2e65080e978edeca5778235bf3..35e25c54dc679b2503e9d9ff56f5de9d440f9832 100644
--- a/kwant/builder.py
+++ b/kwant/builder.py
@@ -373,8 +373,8 @@ class HermConjOfFunc(object):
     def __init__(self, function):
         self.function = function
 
-    def __call__(self, i, j):
-        return herm_conj(self.function(j, i))
+    def __call__(self, i, j, *args):
+        return herm_conj(self.function(j, i, *args))
 
 
 ################ Leads
diff --git a/kwant/tests/test_builder.py b/kwant/tests/test_builder.py
index 6aa6ea743566643114845f194ebe1726211ef530..52ab1e190ef2e9e807fd8970531df29029330b9b 100644
--- a/kwant/tests/test_builder.py
+++ b/kwant/tests/test_builder.py
@@ -141,10 +141,10 @@ def test_construction_and_indexing():
 
 
 def test_hermitian_conjugation():
-    def f(i, j):
+    def f(i, j, arg):
         i, j = i.tag, j.tag
         if j[0] == i[0] + 1:
-            return ta.array([[1, 2j], [3 + 1j, 4j]])
+            return arg * ta.array([[1, 2j], [3 + 1j, 4j]])
         else:
             raise ValueError
 
@@ -155,8 +155,8 @@ def test_hermitian_conjugation():
     sys[sg(0), sg(1)] = f
     assert sys[sg(0), sg(1)] is f
     assert isinstance(sys[sg(1), sg(0)], builder.HermConjOfFunc)
-    assert_equal(sys[sg(1), sg(0)](sg(1), sg(0)),
-                 sys[sg(0), sg(1)](sg(0), sg(1)).conjugate().transpose())
+    assert_equal(sys[sg(1), sg(0)](sg(1), sg(0), 2),
+                 sys[sg(0), sg(1)](sg(0), sg(1), 2).conjugate().transpose())
     sys[sg(0), sg(1)] = sys[sg(1), sg(0)]
     assert isinstance(sys[sg(0), sg(1)], builder.HermConjOfFunc)
     assert sys[sg(1), sg(0)] is f