Why are there major drawing differences between WindowsMobile.DirectX.Direct3D and Microsoft.DirectX

I am developing a graphical application under Windows Mobile 6 using VS8 (C#). For speed I use the DirectX.Direct3D module as the mobile device has an XScale driver. I use the snippet:-

 

protectedbool InitializeGraphics()
    {
      PresentParameters pres = new PresentParameters();
      pres.Windowed = true;
      pres.SwapEffect = SwapEffect.Discard;

      device = new Device(Manager.Adapters.Default.Adapter,DeviceType.Default, this,CreateFlags.None, pres);
      device.RenderState.LastPixel = true;
      device.RenderState.Lighting = false;
      device.RenderState.CullMode = Cull.None;
      vertices = populate_LLA_vertices();
      if (vertices == null) returnfalse;
      goodtogo = true;
      //timer1.Interval = 50;//timer1.Enabled = true;returntrue;
    }

to initialize the Graphics. The PC version is almost identical except that the device is defined slightly differently:-

      device = new Device(0, DeviceType.Hardware, this,CreateFlags.HardwareVertexProcessing | CreateFlags.FpuPreserve, pres);

To render the list of polylines I use for both versions:-

protectedvoid Render()
    {
      if (!goodtogo) return;
      // Clear the back buffer
      device.Clear(ClearFlags.Target, Color.White, 1.0F, 0);

      // Ready Direct3D to begin drawing
      device.BeginScene();


      // Set the Matrices
      SetupMatrices();
      device.RenderState.FillMode = FillMode.WireFrame;

       // Draw the scene - 3D Rendering calls go here
      device.SetStreamSource(0, vertices, 0);

      //device.DrawPrimitives(PrimitiveType.LineList,0,vertexcount/2);// Draw the primitives in the data stream.int index = 0;
      for (int i = 0; i < linecount; i++)
      {
        device.DrawPrimitives(PrimitiveType.LineStrip, index, line_lengths[i] - 1);
        index += line_lengths[i];//move to the start of the next location
      }
      // Indicate to Direct3D that we’re done drawing
      device.EndScene();


      // Copy the back buffer to the display
      device.Present();
    }

Please note for both Mobile and PC implementations I use

            device.RenderState.LastPixel = true;

The PC version works perfectly well where all the polylines have no missing pixels at the connecting vertices. However, despite my best efforts, the Mobile version have gaps (sometimes more that 1 pixel) at the connecting vertices. The drawing code is
identical. When I zoom in, the mobile version gets nearer to the PC version but there are still small lengths or the polyline missing.

Does the Mobile device render in an XOR mode or is this dependent on the hardware itself. I must admit I am very confused by this. If anyone can steer me through this problem I would be most grateful.

Wheelieman