The modularity of aspect-oriented programming (AOP) has been a controversial issue. To investigate this issue compared with object-oriented programming (OOP), we propose a simple language providing AOP mechanisms, which are enhanced traditional OOP mechanisms. We also present its formal system and then show that programs in this language can be only mostly modularly (i.e. separately) typechecked and compiled. We mention a source of this unmodularity and discuss whether or not it is appropriate to claim that AOP breaks modularity compared with OOP. Categories and Subject Descriptors D.3.3 [Programming Languages]: Language Constructs and Features — Classes and objects General Terms Languages Keywords Aspect Oriented Programming, Java, AspectJ.