diff --git a/kwant/builder.py b/kwant/builder.py
index 9c93bae507478f9d05bf2ecd05c839c136b9f278..5dedfefb6e6702e80d9e63b7aa39e1c537572835 100644
--- a/kwant/builder.py
+++ b/kwant/builder.py
@@ -424,8 +424,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 67158f1b3efe991c459cddea3098b45f29268347..917fd548a2ed5ecbd1d2e71a84e13f9dbef5298b 100644
--- a/kwant/tests/test_builder.py
+++ b/kwant/tests/test_builder.py
@@ -210,10 +210,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
 
@@ -224,8 +224,8 @@ def test_hermitian_conjugation():
     sys[fam(0), fam(1)] = f
     assert sys[fam(0), fam(1)] is f
     assert isinstance(sys[fam(1), fam(0)], builder.HermConjOfFunc)
-    assert_equal(sys[fam(1), fam(0)](fam(1), fam(0)),
-                 sys[fam(0), fam(1)](fam(0), fam(1)).conjugate().transpose())
+    assert_equal(sys[fam(1), fam(0)](fam(1), fam(0), 2),
+                 sys[fam(0), fam(1)](fam(0), fam(1), 2).conjugate().transpose())
     sys[fam(0), fam(1)] = sys[fam(1), fam(0)]
     assert isinstance(sys[fam(0), fam(1)], builder.HermConjOfFunc)
     assert sys[fam(1), fam(0)] is f
diff --git a/kwant/tests/test_system.py b/kwant/tests/test_system.py
index be78058f2ff5bdaaf4fe0d9f576df22ee5fa2acb..29f548087232b92a92292fae687a48183d84a8eb 100644
--- a/kwant/tests/test_system.py
+++ b/kwant/tests/test_system.py
@@ -91,10 +91,10 @@ def test_hamiltonian_submatrix():
     sys[((chain(i), chain(i + 1)) for i in xrange(2))] = hopping
     sys2 = sys.finalized()
     mat = sys2.hamiltonian_submatrix((2, 1))
-    mat_should_be = [[5, 1, 0], [1, 4, 1.], [0, 1, 3]]
+    mat_should_be = [[3, 1, 0], [1, 4, 1], [0, 1, 5]]
 
     # Sorting is required due to unknown compression order of builder.
-    onsite_hamiltonians = mat.flat[::3]
+    onsite_hamiltonians = mat.flat[::4]
     perm = np.argsort(onsite_hamiltonians)
     mat = mat[perm, :]
     mat = mat[:, perm]