diff --git a/core/include/fxcrt/fx_ucd.h b/core/include/fxcrt/fx_ucd.h
index 447d555..9e1862a 100644
--- a/core/include/fxcrt/fx_ucd.h
+++ b/core/include/fxcrt/fx_ucd.h
@@ -88,20 +88,6 @@
     FX_CHARTYPE_ArabicForm			= (11 << FX_CHARTYPEBITS),
     FX_CHARTYPE_Arabic				= (12 << FX_CHARTYPEBITS),
 };
-typedef struct _FX_CHARPROPERTIES {
-    union {
-        struct {
-            FX_DWORD	dwBreakType		: 6;
-            FX_DWORD	dwBidiClass		: 5;
-            FX_DWORD	dwCharType		: 4;
-            FX_DWORD	dwRotation		: 1;
-            FX_DWORD	dwCJKSpecial	: 1;
-            FX_DWORD	dwVertIndex		: 6;
-            FX_DWORD	dwBidiIndex		: 9;
-        };
-        FX_DWORD	dwCharProps;
-    };
-} FX_CHARPROPERTIES;
 FX_DWORD FX_GetUnicodeProperties(FX_WCHAR wch);
 FX_BOOL	FX_IsCtrlCode(FX_WCHAR ch);
 FX_BOOL	FX_IsRotationCode(FX_WCHAR ch);
diff --git a/fpdfsdk/include/fpdfview.h b/fpdfsdk/include/fpdfview.h
index a563762..f4f1375 100644
--- a/fpdfsdk/include/fpdfview.h
+++ b/fpdfsdk/include/fpdfview.h
@@ -487,11 +487,7 @@
 //			top			-	The top side position. Starting from 0 at the top-most scan line.
 //			width		-	Number of pixels to be filled in each scan line.
 //			height		-	Number of scan lines to be filled.
-//			red			-	A number from 0 to 255, identifying the red intensity.
-//			green		-	A number from 0 to 255, identifying the green intensity.
-//			blue		-	A number from 0 to 255, identifying the blue intensity.
-//			alpha		-	(Only if the alpha channeled is used when bitmap created) A number from 0 to 255,
-//							identifying the alpha value.
+//			color		-	A 32-bit value specifing the color, in 8888 ARGB format.
 // Return value:
 //			None.
 // Comments:
@@ -500,8 +496,7 @@
 //			instead the background will be replaced by the source color and alpha.
 //			If alpha channel is not used, the "alpha" parameter is ignored.
 //
-DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, 
-									int red, int green, int blue, int alpha);
+DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, FPDF_DWORD color);
 
 // Function: FPDFBitmap_GetBuffer
 //			Get data buffer of an FXDIB
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
index 10eaf5d..a9aa9a8 100644
--- a/fpdfsdk/src/fpdfview.cpp
+++ b/fpdfsdk/src/fpdfview.cpp
@@ -725,8 +725,7 @@
 	return pBitmap;
 }
 
-DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, 
-									int red, int green, int blue, int alpha)
+DLLEXPORT void STDCALL FPDFBitmap_FillRect(FPDF_BITMAP bitmap, int left, int top, int width, int height, FPDF_DWORD color)
 {
 	if (bitmap == NULL) return;
 #ifdef _SKIA_SUPPORT_
@@ -735,9 +734,9 @@
 	CFX_FxgeDevice device;
 #endif
 	device.Attach((CFX_DIBitmap*)bitmap);
-	if (!((CFX_DIBitmap*)bitmap)->HasAlpha()) alpha = 255;
+	if (!((CFX_DIBitmap*)bitmap)->HasAlpha()) color |= 0xFF000000;
 	FX_RECT rect(left, top, left+width, top+height);
-	device.FillRect(&rect, FXARGB_MAKE(alpha, red, green, blue));
+	device.FillRect(&rect, color);
 }
 
 DLLEXPORT void* STDCALL FPDFBitmap_GetBuffer(FPDF_BITMAP bitmap)
diff --git a/samples/pdfium_test.cc b/samples/pdfium_test.cc
index c504bf4..f8e5673 100644
--- a/samples/pdfium_test.cc
+++ b/samples/pdfium_test.cc
@@ -230,7 +230,7 @@
     int width = static_cast<int>(FPDF_GetPageWidth(page));
     int height = static_cast<int>(FPDF_GetPageHeight(page));
     FPDF_BITMAP bitmap = FPDFBitmap_Create(width, height, 0);
-    FPDFBitmap_FillRect(bitmap, 0, 0, width, height, 255, 255, 255, 255);
+    FPDFBitmap_FillRect(bitmap, 0, 0, width, height, 0xFFFFFFFF);
 
     FPDF_RenderPageBitmap(bitmap, page, 0, 0, width, height, 0, 0);
     FPDF_FFLDraw(form, bitmap, page, 0, 0, width, height, 0, 0);
