Index: main/grid/row-selectable.lisp
===================================================================
--- main/grid/row-selectable.lisp	(revision main,62)
+++ main/grid/row-selectable.lisp	(revision main,75)
@@ -4,5 +4,7 @@
 
 (defclass row-selectable ()
-  ((selected-row :type (integer 0) :initform 0 :accessor selected-row)))
+  ((selected-row :type (or null (integer 0))
+                 :initform 0
+                 :accessor selected-row)))
 
 
@@ -11,5 +13,5 @@
   ;; TODO: This was hacked to take out header rows from other classes
   ;; that I wish didn't affect the call.
-  (call-next-method (bound i 0 (- (rows d) (header-rows d) 1)) d))
+  (call-next-method (bound (if i i 0) 0 (- (rows d) (header-rows d) 1)) d))
 
 (defvar *recursive* nil)
Index: main/simple-table.lisp
===================================================================
--- main/simple-table.lisp	(revision main,73)
+++ main/simple-table.lisp	(revision main,75)
@@ -57,6 +57,7 @@
     (flet ((notify ()
              (funcall select-callback)
-             (when (ensure-row-visible grid (1+ (selected-row model)))
-               (funcall scroll-callback))))
+             (let ((row (selected-row model)))
+               (when (and row (ensure-row-visible grid (1+ row)))
+                 (funcall scroll-callback)))))
       (notify)
       (loop
