diff --git a/grudge/discretization.py b/grudge/discretization.py
index d24fb2c082ddf3585d7de13f58a7a0b371cc4ed0..64c00e94f7b3668b8a8f1ae96ac59a1b8f8daf66 100644
--- a/grudge/discretization.py
+++ b/grudge/discretization.py
@@ -373,54 +373,4 @@ class DGDiscretizationWithBoundaries(DiscretizationBase):
                 or where == sym.VTAG_ALL)
 
 
-class PointsDiscretization(DiscretizationBase):
-    """Implements just enough of the discretization interface to be
-    able to smuggle some points into :func:`bind`.
-    """
-
-    def __init__(self, nodes):
-        self._nodes = nodes
-        self.real_dtype = np.dtype(np.float64)
-        self.complex_dtype = np.dtype({
-                np.float32: np.complex64,
-                np.float64: np.complex128
-        }[self.real_dtype.type])
-
-        self.mpi_communicator = None
-
-    def ambient_dim(self):
-        return self._nodes.shape[0]
-
-    @property
-    def mesh(self):
-        return self
-
-    @property
-    def nnodes(self):
-        return self._nodes.shape[-1]
-
-    def nodes(self):
-        return self._nodes
-
-    @property
-    def facial_adjacency_groups(self):
-        return []
-
-    def discr_from_dd(self, dd):
-        dd = sym.as_dofdesc(dd)
-
-        if dd.quadrature_tag is not sym.QTAG_NONE:
-            raise ValueError("quadrature discretization requested from "
-                    "PointsDiscretization")
-        if dd.domain_tag is not sym.DTAG_VOLUME_ALL:
-            raise ValueError("non-volume discretization requested from "
-                    "PointsDiscretization")
-
-        return self
-
-    @property
-    def quad_tag_to_group_factory(self):
-        return {}
-
-
 # vim: foldmethod=marker
diff --git a/test/test_grudge.py b/test/test_grudge.py
index 26f274b764e727c2eae5f952c5f9b3a7c2727a46..09da5fa226e6cc2fe6c566d41c24564325447e07 100644
--- a/test/test_grudge.py
+++ b/test/test_grudge.py
@@ -514,22 +514,6 @@ def test_improvement_quadrature(ctx_factory, order):
     assert q_eoc > order
 
 
-def test_foreign_points(ctx_factory):
-    pytest.importorskip("sumpy")
-    import sumpy.point_calculus as pc
-
-    cl_ctx = ctx_factory()
-    queue = cl.CommandQueue(cl_ctx)
-
-    dim = 2
-    cp = pc.CalculusPatch(np.zeros(dim))
-
-    from grudge.discretization import PointsDiscretization
-    pdiscr = PointsDiscretization(cl.array.to_device(queue, cp.points))
-
-    bind(pdiscr, sym.nodes(dim)**2)(queue)
-
-
 def test_op_collector_order_determinism():
     class TestOperator(sym.Operator):