def listsplit(sourcelist, delimiter):
    """
    Splits a list at a given delimiter. Returns a list of lists.

    Example:
    >>> l = ['a', '', 'b', 'c', '', '', 'd']
    >>> listsplit(l, '')
    [['a'], ['b', 'c'], ['d']]

    """
    result = []
    start = 0
    while True:
        try:
            position = sourcelist.index(delimiter, start)
            if start == position:
                start += 1
                continue
            result.append(sourcelist[start:position])
            start = position + 1
        except ValueError:
            tail = sourcelist[start:]
            if tail:
                result.append(tail)
            break
    return result