diff --git a/kwant/solvers/common.py b/kwant/solvers/common.py
index 090ac31fd9caad2d320ef41420afdc8672656940..6abd9607d72949c95dd29a9a53bf04ad675413b6 100644
--- a/kwant/solvers/common.py
+++ b/kwant/solvers/common.py
@@ -545,6 +545,7 @@ class SparseSolver(object):
 
 class WaveFunction(object):
     def __init__(self, solver, sys, energy, args, check_hermiticity):
+        ensure_isinstance(sys, system.System)
         for lead in sys.leads:
             if not hasattr(lead, 'modes'):
                 # TODO: figure out what to do with self-energies.