diff --git a/kwant/solvers/common.py b/kwant/solvers/common.py
index 96b5f7de02dd616eb13120ec53fc04306385b572..a19aee3bae5c4c5c9aa5b986fa143c1e036a8bb2 100644
--- a/kwant/solvers/common.py
+++ b/kwant/solvers/common.py
@@ -460,8 +460,8 @@ class SparseSolver(object):
         for lead in fsys.leads:
             if not hasattr(lead, 'modes'):
                 # TODO: fix this
-                raise ValueError("ldos for leads with only self-energy "
-                                 "is not implemented yet")
+                raise NotImplementedError("ldos for leads with only "
+                                          "self-energy is not implemented yet")
 
         linsys, lead_info = \
             self._make_linear_sys(fsys, xrange(len(fsys.leads)), energy, args)
diff --git a/kwant/solvers/tests/_test_sparse.py b/kwant/solvers/tests/_test_sparse.py
index 989f144cfd3af8925a28cb10a12a382305dc8c2d..1e62908ea509f7e1d89fd12545be56c25833c5eb 100644
--- a/kwant/solvers/tests/_test_sparse.py
+++ b/kwant/solvers/tests/_test_sparse.py
@@ -393,7 +393,7 @@ def test_ldos(ldos):
                             np.array([1, 1]) / (2 * np.pi))
     assert_raises(ValueError, ldos, fsys.precalculate(what='selfenergy'), 0)
     fsys.leads[0] = LeadWithOnlySelfEnergy(fsys.leads[0])
-    assert_raises(ValueError, ldos, fsys, 0)
+    assert_raises(NotImplementedError, ldos, fsys, 0)
 
 
 def test_wavefunc_ldos_consistency(wave_function, ldos):