#include "wx/ownerdrw.h"
 #include "wx/settings.h"
 #include "wx/dcmemory.h"
+#include "wx/dcscreen.h"
 #include "wx/os2/checklst.h"
 #include "wx/log.h"
 
 {
     wxRect                          vRect = rRect;
 
+    ::WinQueryWindowRect( m_pParent->GetHWND()
+                         ,&rDc.m_vRclPaint
+                        );
     if (IsChecked())
         eStat = (wxOwnerDrawn::wxODStatus)(eStat | wxOwnerDrawn::wxODChecked);
 
         m_pParent->GetSize( NULL
                            ,&nParentHeight
                           );
-        ::WinQueryWindowRect( m_pParent->GetHWND()
-                             ,&rDc.m_vRclPaint
-                            );
 
         nY = nParentHeight - nY - nCheckHeight;
         vPenBack = wxPen(vColour, 1, wxSOLID);
 , int                               nStrings
 , const wxString                    asChoices[]
 , long                              lStyle
-#if wxUSE_VALIDATORS
 , const wxValidator&                rVal
-#endif
 , const wxString&                   rsName
 )
               : wxListBox()
            ,nStrings
            ,asChoices
            ,lStyle | wxLB_OWNERDRAW
-#if wxUSE_VALIDATORS
            ,rVal
-#endif
            ,rsName
           );
 } // end of wxCheckListBox::wxCheckListBox
 // Return item size
 // ----------------
 //
-bool wxCheckListBox::OS2OnMeasure (
+long wxCheckListBox::OS2OnMeasure (
   WXMEASUREITEMSTRUCT*             pItem
 )
 {
         // Add place for the check mark
         //
         pStruct->rclItem.xRight += wxOwnerDrawn::GetDefaultMarginWidth();
-        return TRUE;
+        return long(MRFROM2SHORT((USHORT)m_nItemHeight, (USHORT)(pStruct->rclItem.xRight - pStruct->rclItem.xLeft)));
     }
-    return FALSE;
+    return 0L;
 } // end of wxCheckListBox::CreateItem
 
 //