Some minor improvements and fixes.

diff --git a/dlls/comctl32/comctl32undoc.c b/dlls/comctl32/comctl32undoc.c
index b51c65b..c521532 100644
--- a/dlls/comctl32/comctl32undoc.c
+++ b/dlls/comctl32/comctl32undoc.c
@@ -252,7 +252,7 @@
     FIXME (commctrl, "(%lx %lx %lx %lx) empty stub!\n",
 	   dwParam1, dwParam2, dwParam3, dwParam4);
 
-    return -1;
+    return TRUE;
 }
 
 
@@ -1353,7 +1353,7 @@
 	}
 
 	if (uOptions & DPAS_INSERTAFTER) {
-	    TRACE (commctrl, "-- ret=%d\n", r);
+	    TRACE (commctrl, "-- ret=%d\n", l);
 	    return l;
 	}
     }
diff --git a/dlls/comctl32/pager.c b/dlls/comctl32/pager.c
index 815a55f..8562805 100644
--- a/dlls/comctl32/pager.c
+++ b/dlls/comctl32/pager.c
@@ -91,6 +91,7 @@
     NMPGCALCSIZE nmpgcs;
 
     if (infoPtr->hwndChild) {
+	ZeroMemory (&nmpgcs, sizeof (NMPGCALCSIZE));
 	nmpgcs.hdr.hwndFrom = wndPtr->hwndSelf;
 	nmpgcs.hdr.idFrom = wndPtr->wIDmenu;
 	nmpgcs.hdr.code = PGN_CALCSIZE;
@@ -166,10 +167,11 @@
     FIXME (pager, "hwnd=%x\n", infoPtr->hwndChild);
 
     /* FIXME: redraw */
-    SetParent32 (infoPtr->hwndChild, wndPtr->hwndSelf);
-    SetWindowPos32 (infoPtr->hwndChild, wndPtr->hwndSelf,
-		    0, 0, 40, 40, SWP_SHOWWINDOW);
-    RedrawWindow32 (wndPtr->hwndSelf, NULL, NULL, RDW_INVALIDATE);
+    if (infoPtr->hwndChild) {
+	SetParent32 (infoPtr->hwndChild, wndPtr->hwndSelf);
+	SetWindowPos32 (infoPtr->hwndChild, HWND_TOP,
+			0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
+    }
 
     return 0;
 }
@@ -185,8 +187,8 @@
     FIXME (pager, "pos=%d\n", infoPtr->nPos);
 
     /* FIXME: redraw */
-    SetWindowPos32 (infoPtr->hwndChild, wndPtr->hwndSelf,
-		    0, 0, 0, 0, SWP_NOSIZE);
+    SetWindowPos32 (infoPtr->hwndChild, HWND_TOP,
+		    0, 0, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE);
 
     return 0;
 }
@@ -212,7 +214,7 @@
     }
 
     /* set default settings */
-    infoPtr->hwndChild = 0;
+    infoPtr->hwndChild = (HWND32)NULL;
     infoPtr->clrBk = GetSysColor32 (COLOR_BTNFACE);
     infoPtr->nBorder = 0;
     infoPtr->nButtonSize = 0;
@@ -245,10 +247,12 @@
     HBRUSH32 hBrush = CreateSolidBrush32 (infoPtr->clrBk);
     RECT32 rect;
 
-//    GetClientRect32 (wndPtr->hwndSelf, &rect);
-//    FillRect32 ((HDC32)wParam, &rect, hBrush);
-//    DeleteObject32 (hBrush);
-    return TRUE;
+    GetClientRect32 (wndPtr->hwndSelf, &rect);
+    FillRect32 ((HDC32)wParam, &rect, hBrush);
+    DeleteObject32 (hBrush);
+
+//    return TRUE;
+    return FALSE;
 }
 
 
@@ -256,6 +260,28 @@
 // << PAGER_Paint >>
 
 
+static LRESULT
+PAGER_Size (WND *wndPtr, WPARAM32 wParam, LPARAM lParam)
+{
+    PAGER_INFO *infoPtr = PAGER_GetInfoPtr(wndPtr);
+    RECT32 rect;
+
+    GetClientRect32 (wndPtr->hwndSelf, &rect);
+    if (infoPtr->hwndChild) {
+	SetWindowPos32 (infoPtr->hwndChild, HWND_TOP, rect.left, rect.top,
+			rect.right - rect.left, rect.bottom - rect.top,
+			SWP_SHOWWINDOW);
+//	MoveWindow32 (infoPtr->hwndChild, 1, 1, rect.right - 2, rect.bottom-2, TRUE);
+//	UpdateWindow32 (infoPtr->hwndChild);
+
+    }
+//    FillRect32 ((HDC32)wParam, &rect, hBrush);
+//    DeleteObject32 (hBrush);
+    return TRUE;
+}
+
+
+
 LRESULT WINAPI
 PAGER_WindowProc (HWND32 hwnd, UINT32 uMsg, WPARAM32 wParam, LPARAM lParam)
 {
@@ -316,6 +342,8 @@
 //	case WM_PAINT:
 //	    return PAGER_Paint (wndPtr, wParam);
 
+	case WM_SIZE:
+	    return PAGER_Size (wndPtr, wParam, lParam);
 
 	default:
 	    if (uMsg >= WM_USER)
@@ -327,8 +355,8 @@
 }
 
 
-void
-PAGER_Register (void)
+VOID
+PAGER_Register (VOID)
 {
     WNDCLASS32A wndClass;
 
@@ -346,3 +374,11 @@
     RegisterClass32A (&wndClass);
 }
 
+
+VOID
+PAGER_Unregister (VOID)
+{
+    if (GlobalFindAtom32A (WC_PAGESCROLLER32A))
+	UnregisterClass32A (WC_PAGESCROLLER32A, (HINSTANCE32)NULL);
+}
+
diff --git a/dlls/comctl32/toolbar.c b/dlls/comctl32/toolbar.c
index fd5e0c4..f9a248b 100644
--- a/dlls/comctl32/toolbar.c
+++ b/dlls/comctl32/toolbar.c
@@ -129,7 +129,7 @@
 
     HDC32 hdcImageList = CreateCompatibleDC32 (0);
     HDC32 hdcMask = CreateCompatibleDC32 (0);
-    HIMAGELIST himl = infoPtr->himlDef;
+    HIMAGELIST himl = infoPtr->himlStd;
     HBITMAP32 hbmMask;
 
     /* create new bitmap */
@@ -187,7 +187,15 @@
 	DrawEdge32 (hdc, &rc, EDGE_RAISED,
 		    BF_SOFT | BF_RECT | BF_MIDDLE | BF_ADJUST);
 
-	TOOLBAR_DrawMasked (infoPtr, btnPtr, hdc, rc.left+1, rc.top+1);
+	if (bFlat) {
+//	    if (infoPtr->himlDis)
+		ImageList_Draw (infoPtr->himlDis, btnPtr->iBitmap, hdc,
+				rc.left+1, rc.top+1, ILD_NORMAL);
+//	    else
+//		TOOLBAR_DrawMasked (infoPtr, btnPtr, hdc, rc.left+1, rc.top+1);
+	}
+	else
+	    TOOLBAR_DrawMasked (infoPtr, btnPtr, hdc, rc.left+1, rc.top+1);
 
 	TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState);
 	return;
@@ -197,7 +205,7 @@
     if (btnPtr->fsState & TBSTATE_PRESSED) {
 	DrawEdge32 (hdc, &rc, EDGE_SUNKEN,
 		    BF_RECT | BF_MIDDLE | BF_ADJUST);
-	ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
+	ImageList_Draw (infoPtr->himlStd, btnPtr->iBitmap, hdc,
 			rc.left+2, rc.top+2, ILD_NORMAL);
 	TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState);
 	return;
@@ -214,8 +222,12 @@
 			BF_RECT | BF_MIDDLE | BF_ADJUST);
 
 	TOOLBAR_DrawPattern (hdc, &rc);
-	ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
-			rc.left+2, rc.top+2, ILD_NORMAL);
+	if (bFlat)
+	    ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
+			    rc.left+2, rc.top+2, ILD_NORMAL);
+	else
+	    ImageList_Draw (infoPtr->himlStd, btnPtr->iBitmap, hdc,
+			    rc.left+2, rc.top+2, ILD_NORMAL);
 	TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState);
 	return;
     }
@@ -234,8 +246,14 @@
     /* normal state */
     DrawEdge32 (hdc, &rc, EDGE_RAISED,
 		BF_SOFT | BF_RECT | BF_MIDDLE | BF_ADJUST);
-    ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
-		    rc.left+1, rc.top+1, ILD_NORMAL);
+
+    if (bFlat)
+	ImageList_Draw (infoPtr->himlDef, btnPtr->iBitmap, hdc,
+			rc.left+1, rc.top+1, ILD_NORMAL);
+    else
+	ImageList_Draw (infoPtr->himlStd, btnPtr->iBitmap, hdc,
+			rc.left+1, rc.top+1, ILD_NORMAL);
+
     TOOLBAR_DrawString (infoPtr, btnPtr, hdc, btnPtr->fsState);
 }
 
@@ -603,7 +621,7 @@
     if (!(infoPtr->himlDef)) {
 	/* create new default image list */
 	TRACE (toolbar, "creating default image list!\n");
-	infoPtr->himlDef =
+	infoPtr->himlStd =
 	    ImageList_Create (infoPtr->nBitmapWidth, infoPtr->nBitmapHeight,
 			      ILC_COLOR | ILC_MASK, (INT32)wParam, 2);
     }
@@ -622,7 +640,7 @@
     /* Add bitmaps to the default image list */
     if (lpAddBmp->hInst == (HINSTANCE32)0) {
 	nIndex = 
-	    ImageList_AddMasked (infoPtr->himlDef, (HBITMAP32)lpAddBmp->nID,
+	    ImageList_AddMasked (infoPtr->himlStd, (HBITMAP32)lpAddBmp->nID,
 				 CLR_DEFAULT);
     }
     else if (lpAddBmp->hInst == HINST_COMMCTRL) {
@@ -631,14 +649,14 @@
 
 	/* Hack to "add" some reserved images within the image list 
 	   to get the right image indices */
-	nIndex = ImageList_GetImageCount (infoPtr->himlDef);
-	ImageList_SetImageCount (infoPtr->himlDef, nIndex + (INT32)wParam);
+	nIndex = ImageList_GetImageCount (infoPtr->himlStd);
+	ImageList_SetImageCount (infoPtr->himlStd, nIndex + (INT32)wParam);
     }
     else {
 	HBITMAP32 hBmp =
 	    LoadBitmap32A (lpAddBmp->hInst, (LPSTR)lpAddBmp->nID);
 
-	nIndex = ImageList_AddMasked (infoPtr->himlDef, hBmp, CLR_DEFAULT);
+	nIndex = ImageList_AddMasked (infoPtr->himlStd, hBmp, CLR_DEFAULT);
 
 	DeleteObject32 (hBmp); 
     }
@@ -2052,7 +2070,7 @@
     if (wndPtr->dwStyle & TBSTYLE_TOOLTIPS) {
 	/* Create tooltip control */
 	infoPtr->hwndToolTip =
-	    CreateWindowEx32A (0, TOOLTIPS_CLASS32A, NULL, TTS_ALWAYSTIP,
+	    CreateWindowEx32A (0, TOOLTIPS_CLASS32A, NULL, 0,
 			       CW_USEDEFAULT32, CW_USEDEFAULT32,
 			       CW_USEDEFAULT32, CW_USEDEFAULT32,
 			       wndPtr->hwndSelf, 0, 0, 0);
@@ -2830,7 +2848,8 @@
 }
 
 
-void TOOLBAR_Register (void)
+VOID
+TOOLBAR_Register (VOID)
 {
     WNDCLASS32A wndClass;
 
@@ -2847,3 +2866,12 @@
  
     RegisterClass32A (&wndClass);
 }
+
+
+VOID
+TOOLBAR_Unregister (VOID)
+{
+    if (GlobalFindAtom32A (TOOLBARCLASSNAME32A))
+	UnregisterClass32A (TOOLBARCLASSNAME32A, (HINSTANCE32)NULL);
+}
+
diff --git a/documentation/common_controls b/documentation/common_controls
index ba7f81b..4cec1d7 100644
--- a/documentation/common_controls
+++ b/documentation/common_controls
@@ -198,7 +198,8 @@
       Dummy written by Eric Kohl.
 
   Status:
-      Dummy control. No functionality.
+      Development in progress.
+      Many bugs and missing features.
 
   Notes:
       Author needed!! Any volunteers??
diff --git a/relay32/comctl32.spec b/relay32/comctl32.spec
index 0ba0b8a..767335f 100644
--- a/relay32/comctl32.spec
+++ b/relay32/comctl32.spec
@@ -16,7 +16,7 @@
   8 stdcall CreateMappedBitmap(long long long ptr long) CreateMappedBitmap
   9 stub COMCTL32_9
  10 stub COMCTL32_10
- 11 stdcall COMCTL32_11(long long long long long long) COMCTL32_11
+ 11 stdcall COMCTL32_11(ptr ptr long long long long) COMCTL32_11
 #12 stub Cctl1632_ThunkData32
  13 stub MakeDragList
  14 stub LBItemFromPt