Index: Include/Classes/System/Drawing/Color.ab
===================================================================
--- Include/Classes/System/Drawing/Color.ab	(revision 23)
+++ Include/Classes/System/Drawing/Color.ab	(revision 25)
@@ -18,5 +18,9 @@
 Public
 	Sub Color()
-		Argb = 0 ' Black
+		argb = MakeARGB(255, 0, 0, 0) ' Black
+	End Sub
+
+	Sub Color(ByRef c As Color)
+		argb = c.argb
 	End Sub
 
@@ -26,13 +30,13 @@
 
 	Sub Color(a As Byte, r As Byte, g As Byte, b As Byte)
-		Argb = MakeARGB(a, r, g, b)
-	End Sub
-
-	Sub Color(argb As ARGB)
-		Argb = argb
+		argb = MakeARGB(a, r, g, b)
+	End Sub
+
+	Sub Color(newArgb As ARGB)
+		argb = newArgb
 	End Sub
 
 	Sub Operator =(c As Color)
-		SetValue(c)
+		argb = c.argb
 	End Sub
 
@@ -61,14 +65,18 @@
 	End Function
 
-	Function GetValue() As ARGB
-		GetValue = argb
-	End Function
-
-	Sub SetValue(value As ARGB)
+	Function Value() As ARGB
+		Return argb
+	End Function
+
+	Sub Value(value As ARGB)
 		argb = value
 	End Sub
 
 	Sub SetFromCOLORREF(rgb As COLORREF)
-		argb = Color_MakeARGB(255, GetRValue(rgb), GetGValue(rgb), GetBValue(rgb))
+		If (rgb And &hff000000) = &h01000000 Then
+			Exit Sub ' インデックス指定は無効
+		Else
+			argb = Color_MakeARGB(255, GetRValue(rgb), GetGValue(rgb), GetBValue(rgb))
+		End If
 	End Sub
 
@@ -91,10 +99,10 @@
 	End Function
 
-	Static Function FromArgb(r As Byte, g As Byte, b As Byte)
+	Static Function FromArgb(r As Byte, g As Byte, b As Byte) As Color
 		Dim c As Color(r, g, b)
 		Return c
 	End Function
 
-	Static Function FromArgb(a As Byte, r As Byte, g As Byte, b As Byte)
+	Static Function FromArgb(a As Byte, r As Byte, g As Byte, b As Byte) As Color
 		Dim c As Color(a, r, g, b)
 		Return c
@@ -297,10 +305,5 @@
 	End Enum
 */
-	' Assemble A, R, G, B values into a 32-bit integer
-Private
-	Static Function MakeARGB(/*IN*/ a As Byte,
-	                         /*IN*/ r As Byte,
-	                         /*IN*/ g As Byte,
-	                         /*IN*/ b As Byte) As ARGB
+	Static Function MakeARGB(a As Byte, r As Byte, g As Byte, b As Byte) As ARGB
 		MakeARGB = (((b As ARGB) <<  Color_BlueShift) Or _
 		            ((g As ARGB) << Color_GreenShift) Or _
