Index: par-ch6.adb
===================================================================
--- par-ch6.adb	(revision 160705)
+++ par-ch6.adb	(working copy)
@@ -215,14 +215,17 @@ package body Ch6 is
          --  already been given, so no need to give another message here.
 
          --  An overriding indicator is allowed for subprogram declarations,
-         --  bodies, renamings, stubs, and instantiations. The test against
-         --  Pf_Decl_Pbod is added to account for the case of subprograms
-         --  declared in a protected type, where only subprogram declarations
-         --  and bodies can occur.
+         --  bodies (including subunits), renamings, stubs, and
+         --  instantiations. The test against Pf_Decl_Pbod is added to account
+         --  for the case of subprograms declared in a protected type, where
+         --  only subprogram declarations and bodies can occur. The Pf_Pbod
+         --  case is for subunits.
 
          if Pf_Flags /= Pf_Decl_Gins_Pbod_Rnam_Stub
               and then
             Pf_Flags /= Pf_Decl_Pbod
+              and then
+            Pf_Flags /= Pf_Pbod
          then
             Error_Msg_SC ("overriding indicator not allowed here!");
 
Index: par-ch10.adb
===================================================================
--- par-ch10.adb	(revision 160705)
+++ par-ch10.adb	(working copy)
@@ -1028,7 +1028,11 @@ package body Ch10 is
 
       Ignore (Tok_Semicolon);
 
-      if Token = Tok_Function or else Token = Tok_Procedure then
+      if Token = Tok_Function
+        or else Token = Tok_Not
+        or else Token = Tok_Overriding
+        or else Token = Tok_Procedure
+      then
          Body_Node := P_Subprogram (Pf_Pbod);
 
       elsif Token = Tok_Package then
