diff --git a/lib/Slic3r/Print/Object.pm b/lib/Slic3r/Print/Object.pm
index e81f3a9e7..fb08ceac6 100644
--- a/lib/Slic3r/Print/Object.pm
+++ b/lib/Slic3r/Print/Object.pm
@@ -549,6 +549,7 @@ sub generate_support_material {
                         flow_spacing    => $params->{flow_spacing},
                     ), @paths;
             }
+            $_->deserialize for @patterns;
             push @$support_patterns, [@patterns];
         }
     }
@@ -566,7 +567,7 @@ sub generate_support_material {
             my ($layer_id, $expolygons) = @_;
             my @paths = ();
             foreach my $expolygon (@$expolygons) {
-                push @paths, map $_->clip_with_expolygon($expolygon),
+                push @paths, map { $_->deserialize; $_->clip_with_expolygon($expolygon) }
                     map $_->clip_with_polygon($expolygon->bounding_box_polygon),
                     @{$support_patterns->[ $layer_id % @$support_patterns ]};
             };