Index: NSCell.m
===================================================================
--- NSCell.m	(revision 24917)
+++ NSCell.m	(working copy)
@@ -1307,6 +1307,14 @@
 - (void) setShowsFirstResponder: (BOOL)flag 
 {
   _cell.shows_first_responder = flag;
+  if (flag && _cell.focus_ring_type == NSFocusRingTypeNone)
+    {
+      _cell.focus_ring_type = NSFocusRingTypeDefault;
+    }
+  else if (!flag)
+    {
+      _cell.focus_ring_type = NSFocusRingTypeNone;
+    }
 }
 
 - (BOOL) showsFirstResponder
@@ -2019,9 +2027,22 @@
   if (_cell.shows_first_responder
     && [[controlView window] firstResponder] == controlView)
     {
-      // FIXME: Should depend on _cell.focus_ring_type
-      [[GSTheme theme] drawFocusFrame: [self drawingRectForBounds: cellFrame] 
-		                 view: controlView];
+      switch (_cell.focus_ring_type)
+	{
+	case NSFocusRingTypeDefault:
+	  [[GSTheme theme] 
+	    drawFocusFrame: [self drawingRectForBounds: cellFrame] 
+		      view: controlView];
+	  break;
+	case NSFocusRingTypeExterior:
+	  [[GSTheme theme] drawFocusFrame: cellFrame 
+				     view: controlView];
+	  break;
+	case NSFocusRingTypeNone:
+			 default:
+  	  break;
+
+	}
     }
 }
 
