 					x = getNumber(useRelative, prevX, value);
 					y = getNumber(useRelative, prevY, value);
 					newSegments.push(new MoveSegment(x, y));
-					lastMoveX = x;
-					lastMoveY = y;
 					prevX = x;
 					prevY = y;
 					// If a moveto is followed by multiple pairs of coordinates, 
 					// the subsequent pairs are treated as implicit lineto commands.
 					prevIdentifier = (c == 0x6D) ? 0x6C : 0x4C; // c == 'm' ? 'l' : 'L'
+                    
+                    // Fix for bug SDK-24457:
+                    // If the Quadratic segment is isolated, the Player
+                    // won't draw fill correctly. We need to generate
+                    // a dummy line segment.
+                    var curSegmentIndex:int = newSegments.length - 1;
+                    if (lastMoveSegmentIndex + 2 == curSegmentIndex && 
+                        newSegments[lastMoveSegmentIndex + 1] is QuadraticBezierSegment)
+                    {
+                        // Insert a dummy LineSegment
+                        newSegments.splice(lastMoveSegmentIndex + 1, 0, new LineSegment(lastMoveX, lastMoveY));
+                        curSegmentIndex++;
+                    }
+                    
+                    lastMoveSegmentIndex = curSegmentIndex;
+                    lastMoveX = x;
+                    lastMoveY = y;
 					break;
 
 				case 0x6C:	// l

		var controlY:Number;
		var control2X:Number;
		var control2Y:Number;

		_dataLength = charCount;
		_charPos = 0;

					return;
			}
		}
        
        // Fix for bug SDK-24457:
        // If the Quadratic segment is isolated, the Player
        // won't draw fill correctly. We need to generate
        // a dummy line segment.
        curSegmentIndex = newSegments.length;
        if (lastMoveSegmentIndex + 2 == curSegmentIndex && 
            newSegments[lastMoveSegmentIndex + 1] is QuadraticBezierSegment)
        {
            // Insert a dummy LineSegment
            newSegments.splice(lastMoveSegmentIndex + 1, 0, new LineSegment(lastMoveX, lastMoveY));
            curSegmentIndex++;
        }
        
		_segments = newSegments;
	}

