Direct3D translating and scaling

My Direct3D scene has two cubes, defined by the same vertex array. The first cube centers around the origin and has side lengths of 2 units, ie, it is bordered in each dimension by -1.0 and 1.0. I then translate 4.0 units in the X direction, scale by 0.5 in the X direction, and draw the cube again. I would have thought the two cubes should be touching, but they don't, there is a little gap between them. Is there some geometric flaw I am not seeing here?

Code:

`device.DrawUserPrimitives(PrimitiveType.TriangleList,10,CubeVerts);`

device.Transform.World=Matrix.Translation(4.0f,0.0f,0.0f)*Matrix.Scaling(0.5f,1.0f,1.0f);

device.DrawUserPrimitives(PrimitiveType.TriangleList,10,CubeVerts);