diff --git a/lib/Slic3r/ExtrusionLoop.pm b/lib/Slic3r/ExtrusionLoop.pm
index 592f5d031..b13538eef 100644
--- a/lib/Slic3r/ExtrusionLoop.pm
+++ b/lib/Slic3r/ExtrusionLoop.pm
@@ -5,7 +5,7 @@ use Moo;
 has 'polygon' => (
     is          => 'rw',
     required    => 1,
-    handles     => [qw(is_printable nearest_point_to)],
+    handles     => [qw(is_printable nearest_point_to reverse)],
 );
 
 # see EXTR_ROLE_* constants in ExtrusionPath.pm
diff --git a/lib/Slic3r/ExtrusionPath.pm b/lib/Slic3r/ExtrusionPath.pm
index 5e946a5e4..6a2df2740 100644
--- a/lib/Slic3r/ExtrusionPath.pm
+++ b/lib/Slic3r/ExtrusionPath.pm
@@ -14,7 +14,7 @@ use Slic3r::Geometry qw(PI X Y epsilon deg2rad rotate_points);
 has 'polyline' => (
     is          => 'rw',
     required    => 1,
-    handles     => [qw(merge_continuous_lines lines length)],
+    handles     => [qw(merge_continuous_lines lines length reverse)],
 );
 
 # this integer represents the vertical thickness of the extrusion
@@ -98,11 +98,6 @@ sub endpoints {
     return ($self->points->[0], $self->points->[-1]);
 }
 
-sub reverse {
-    my $self = shift;
-    @{$self->points} = reverse @{$self->points};
-}
-
 sub is_printable { 1 }
 
 sub split_at_acute_angles {