diff --git a/benchbuild/source/base.py b/benchbuild/source/base.py
index <HASH>..<HASH> 100644
--- a/benchbuild/source/base.py
+++ b/benchbuild/source/base.py
@@ -230,9 +230,8 @@ def primary(*sources: ISource) -> ISource:
     If you define a new project and rely on the existence of a 'main'
     source code repository, make sure to define it as the first one.
     """
-    del sources
-
-    return source
+    (head, *_) = sources
+    return head
 
 
 def product(*sources: ISource) -> NestedVariants:
diff --git a/tests/test_project.py b/tests/test_project.py
index <HASH>..<HASH> 100644
--- a/tests/test_project.py
+++ b/tests/test_project.py
@@ -145,9 +145,9 @@ def describe_project():
         ).name == 'VersionSource_0'
 
     def source_must_contain_elements():  # pylint: disable=unused-variable
-        with pytest.raises(TypeError) as excinfo:
+        with pytest.raises(ValueError) as excinfo:
             DummyPrjEmptySource()
-        assert "primary()" in str(excinfo)
+        assert "not enough values to unpack" in str(excinfo)
 
 
 def describe_filters():
project/source: rais valueerror, if not enough arguments are provided in varargs