wxListCtrl *m_listCtrl = new wxListCtrl(
        this, -1, wxPoint(200, 10), wxSize(180, 120),
-       wxLC_REPORT | wxSUNKEN_BORDER);
+       wxLC_REPORT | wxSUNKEN_BORDER | wxLC_SINGLE_SEL );
 
   m_listCtrl->InsertColumn(0, "First", wxLIST_FORMAT_LEFT, 90);
   m_listCtrl->InsertColumn(1, "Last", wxLIST_FORMAT_LEFT, 90);
       sprintf(buf, "Item %d", i);
       m_listCtrl->InsertItem(i, buf);
   }
+  m_listCtrl->SetItemState( 3, wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED );
 
   (void) new wxListBox( this, -1, wxPoint(200,180), wxSize(180,120), 5, choices, wxLB_ALWAYS_SB );
   
        : wxFrame( (wxFrame *)NULL, -1, "wxScrolledWindow sample",
                   wxPoint(20,20), wxSize(470,360) )
 {
-/*
   wxMenu *file_menu = new wxMenu();
   file_menu->Append( ID_ABOUT, "&About..");
   file_menu->Append( ID_QUIT, "E&xit\tAlt-X");
   int widths[] = { -1, 100 };
   SetStatusWidths( 2, widths );
 
-*/
   m_canvas = new MyCanvas( this, -1, wxPoint(0,0), wxSize(10,10) );
   m_canvas->SetScrollbars( 10, 10, 50, 100 );
 }
 
             m_current = line;
             FocusLine( m_current );
             RefreshLine( m_current );
-            RefreshLine( oldCurrent );
+            if (oldCurrent) RefreshLine( oldCurrent );
         }
     }
 
                 UnfocusLine( m_current );
                 m_current = line;
                 FocusLine( m_current );
-                oldCurrent->Hilight( FALSE );
+                if (oldCurrent) oldCurrent->Hilight( FALSE );
                 RefreshLine( m_current );
-                RefreshLine( oldCurrent );
+                if (oldCurrent) RefreshLine( oldCurrent );
             }
             bool on = state & wxLIST_STATE_SELECTED;
            if (on != line->IsHilighted())