possible bug in monomial expressions



Hello,
 Look at the following:

(%i103) p: 2*x*y;
(%o103)                              2 x y
(%i104) length(p);
(%o104)                                3
(%i105) q: -2*x*y;
(%o105)                             - 2 x y
(%i106) length(q);
(%o106)                                1

Is this a bug?  If so, what is the correct answer to length in these 
problems?

TIA,
 -sen