Index: languages/perl6/src/parser/actions.pm
===================================================================
--- languages/perl6/src/parser/actions.pm	(revision 32369)
+++ languages/perl6/src/parser/actions.pm	(working copy)
@@ -1471,6 +1477,15 @@
         }
         elsif $aux<sym> eq 'does' {
             # Role.
+            my @identifier := Perl6::Compiler.parse_name(~$aux<name>);
+            my $name := @identifier.pop();
+            my $superrole := PAST::Var.new(
+                                 :name($name),
+                                 :scope('package'),
+                             );
+            if +@identifier != 0 {
+                $superrole.namespace(@identifier);
+            }
             $package.push(
                 PAST::Op.new(
                     :pasttype('call'),
@@ -1479,10 +1494,7 @@
                         :name('$def'),
                         :scope('lexical')
                     ),
-                    PAST::Var.new(
-                        :name(~$aux<name>),
-                        :scope('package')
-                    )
+                    $superrole
                 )
             );
         }
