diff --git a/contrib/cargo2ebuild.py b/contrib/cargo2ebuild.py
index 1964bdd..69245e5 100755
--- a/contrib/cargo2ebuild.py
+++ b/contrib/cargo2ebuild.py
@@ -316,7 +316,7 @@
 
         # The crate that will be initially checked when flattening the depgraph into a list of required and optional
         # crates.
-        self.root = None
+        self.roots = []
 
     def add_package(self, package):
         """Add a crate to the dependency graph from a parsed metadata.json generated by cargo.
@@ -425,9 +425,9 @@
                     logging.debug("Found ebuild: '%s'.", efile_path[len(target_dir):])
                     available[version] = features
 
-    def set_root(self, package):
-        """Set the root of the dependency graph used when flattening the graph into a list of dependencies."""
-        self.root = package
+    def add_root(self, package):
+        """Add a root of the dependency graph used when flattening the graph into a list of dependencies."""
+        self.roots.append(package)
 
     def resolve_version_range(self, name, version_range):
         """Find a dependency graph entry that fits the constraints.
@@ -561,7 +561,7 @@
         # (name, version) -> set(features)
         required = defaultdict(set)
         optional = defaultdict(set)
-        remaining = [(self.root, {'default'})]
+        remaining = [(root, {'default'}) for root in self.roots]
         while remaining:
             to_check, features = remaining.pop(0)
             name = to_check['name']
@@ -908,7 +908,7 @@
 
     # Add the user submitted package to the set of required packages.
     if package.get('source', None) is None:
-        dep_graph.set_root(package)
+        dep_graph.add_root(package)
     filter_target, crate_dependencies = dep_graph.add_package(package)
 
     download_package(package, staging_dir)
