| Index: Source/WebCore/platform/Scrollbar.cpp
 | 
| ===================================================================
 | 
| --- Source/WebCore/platform/Scrollbar.cpp	(revision 146890)
 | 
| +++ Source/WebCore/platform/Scrollbar.cpp	(working copy)
 | 
| @@ -110,8 +110,8 @@
 | 
|  
 | 
|  Scrollbar::~Scrollbar()
 | 
|  {
 | 
| -    if (AXObjectCache* cache = existingAXObjectCache())
 | 
| -        cache->remove(this);
 | 
| +    if (AXObjectCache::accessibilityEnabled() && axObjectCache())
 | 
| +        axObjectCache()->remove(this);
 | 
|      
 | 
|      stopTimerIfNeeded();
 | 
|      
 | 
| @@ -566,13 +566,16 @@
 | 
|  {
 | 
|      return m_scrollableArea && m_scrollableArea->isActive();
 | 
|  }
 | 
| -
 | 
| -AXObjectCache* Scrollbar::existingAXObjectCache() const
 | 
| +    
 | 
| +AXObjectCache* Scrollbar::axObjectCache() const
 | 
|  {
 | 
| -    if (!parent())
 | 
| +    if (!parent() || !parent()->isFrameView())
 | 
|          return 0;
 | 
|      
 | 
| -    return parent()->axObjectCache();
 | 
| +    // FIXME: Accessing the FrameView and Document here is a layering violation
 | 
| +    // and should be removed.
 | 
| +    Document* document = toFrameView(parent())->frame()->document();
 | 
| +    return document->axObjectCache();
 | 
|  }
 | 
|  
 | 
|  void Scrollbar::invalidateRect(const IntRect& rect)
 | 
| 
 |