diff --git a/more_itertools/more.py b/more_itertools/more.py
index <HASH>..<HASH> 100755
--- a/more_itertools/more.py
+++ b/more_itertools/more.py
@@ -1235,7 +1235,8 @@ def split_before(iterable, pred, maxsplit=-1):
             buf = []
             maxsplit -= 1
         buf.append(item)
-    yield buf
+    if buf:
+        yield buf
 
 
 def split_after(iterable, pred, maxsplit=-1):
diff --git a/tests/test_more.py b/tests/test_more.py
index <HASH>..<HASH> 100644
--- a/tests/test_more.py
+++ b/tests/test_more.py
@@ -1238,6 +1238,11 @@ class SplitBeforeTest(TestCase):
         expected = [['o', 'o', 'o']]
         self.assertEqual(actual, expected)
 
+    def test_empty_collection(self):
+        actual = list(mi.split_before([], lambda c: bool(c)))
+        expected = []
+        self.assertEqual(actual, expected)
+
     def test_max_split(self):
         for args, expected in [
             (
Fix split_before for an empty collections.