diff --git a/tests/draw/test_leader.py b/tests/draw/test_leader.py
index 8151189b8..7e43a8508 100644
--- a/tests/draw/test_leader.py
+++ b/tests/draw/test_leader.py
@@ -461,3 +461,139 @@ def test_leader_absolute(assert_pixels):
''')
+
+
+@assert_no_logs
+def test_leader_padding(assert_pixels):
+ assert_pixels('''
+ RR__BBBBBBBB__BB
+ RR__BBBBBBBB__BB
+ __RR__BBBB__BBBB
+ __RR__BBBB__BBBB
+ ''', '''
+
+ a
+ b
+ ''')
+
+
+@assert_no_logs
+def test_leader_inline_padding(assert_pixels):
+ assert_pixels('''
+ RR__BBBBBBBB__BB
+ RR__BBBBBBBB__BB
+ __RR__BBBB__BBBB
+ __RR__BBBB__BBBB
+ ''', '''
+
+ a
+ b
+ ''')
+
+
+@assert_no_logs
+def test_leader_margin(assert_pixels):
+ assert_pixels('''
+ RR__BBBBBBBB__BB
+ RR__BBBBBBBB__BB
+ __RR__BBBB__BBBB
+ __RR__BBBB__BBBB
+ ''', '''
+
+ a
+ b
+ ''')
+
+
+@assert_no_logs
+def test_leader_inline_margin(assert_pixels):
+ assert_pixels('''
+ RR__BBBBBBBB__BB
+ RR__BBBBBBBB__BB
+ __RR__BBBB__BBBB
+ __RR__BBBB__BBBB
+ ''', '''
+
+ a
+ b
+ ''')
diff --git a/weasyprint/layout/leader.py b/weasyprint/layout/leader.py
index 8cb3a9fa7..434aabc02 100644
--- a/weasyprint/layout/leader.py
+++ b/weasyprint/layout/leader.py
@@ -28,7 +28,7 @@ def handle_leader(context, line, containing_block):
# Extra width is the additional width taken by the leader box
extra_width = containing_block.width - sum(
- child.width for child in line.children
+ child.margin_width() for child in line.children
if child.is_in_normal_flow())
# Take care of excluded shapes