As the title says and as agreed yesterday.

Will commit later today if there no comment.

Abdel.
Index: buffer.C
===================================================================
--- buffer.C    (revision 15153)
+++ buffer.C    (working copy)
@@ -15,7 +15,6 @@
 #include "author.h"
 #include "BranchList.h"
 #include "buffer_funcs.h"
-#include "bufferlist.h"
 #include "bufferparams.h"
 #include "counters.h"
 #include "Bullet.h"
@@ -60,6 +59,7 @@
 #include "mathed/MathSupport.h"
 
 #include "frontends/Alert.h"
+#include "frontends/Application.h"
 
 #include "graphics/Previews.h"
 
@@ -141,9 +141,6 @@
 using std::string;
 
 
-// all these externs should eventually be removed.
-extern BufferList bufferlist;
-
 namespace {
 
 int const LYX_FORMAT = 249;
@@ -1480,12 +1477,13 @@
        params().parentname = name;
 }
 
-
+// FIXME getMasterBuffer() has no business here!
+// should be transfered to BufferList.
 Buffer const * Buffer::getMasterBuffer() const
 {
        if (!params().parentname.empty()
-           && bufferlist.exists(params().parentname)) {
-               Buffer const * buf = bufferlist.getBuffer(params().parentname);
+           && theApp->bufferList().exists(params().parentname)) {
+               Buffer const * buf = 
theApp->bufferList().getBuffer(params().parentname);
                if (buf)
                        return buf->getMasterBuffer();
        }
@@ -1494,11 +1492,13 @@
 }
 
 
+// FIXME getMasterBuffer() has no business here!
+// should be transfered to BufferList.
 Buffer * Buffer::getMasterBuffer()
 {
        if (!params().parentname.empty()
-           && bufferlist.exists(params().parentname)) {
-               Buffer * buf = bufferlist.getBuffer(params().parentname);
+           && theApp->bufferList().exists(params().parentname)) {
+               Buffer * buf = 
theApp->bufferList().getBuffer(params().parentname);
                if (buf)
                        return buf->getMasterBuffer();
        }
Index: buffer_funcs.C
===================================================================
--- buffer_funcs.C      (revision 15153)
+++ buffer_funcs.C      (working copy)
@@ -14,7 +14,6 @@
 
 #include "buffer_funcs.h"
 #include "buffer.h"
-#include "bufferlist.h"
 #include "bufferparams.h"
 #include "dociterator.h"
 #include "counters.h"
@@ -36,6 +35,7 @@
 #include "toc.h"
 
 #include "frontends/Alert.h"
+#include "frontends/Application.h"
 
 #include "insets/insetbibitem.h"
 
@@ -64,8 +64,6 @@
 
 namespace fs = boost::filesystem;
 
-extern BufferList bufferlist;
-
 namespace {
 
 bool readFile(Buffer * const b, string const & s)
@@ -175,12 +173,12 @@
        return false;
 }
 
-
+// FIXME newFile() should be a member method of Application or BufferList?
 Buffer * newFile(string const & filename, string const & templatename,
                 bool const isNamed)
 {
        // get a free buffer
-       Buffer * b = bufferlist.newBuffer(filename);
+       Buffer * b = theApp->bufferList().newBuffer(filename);
        BOOST_ASSERT(b);
 
        string tname;
@@ -197,7 +195,7 @@
                                _("The specified document template\n%1$s\ncould 
not be read."),
                                file);
                        Alert::error(_("Could not read template"), text);
-                       bufferlist.release(b);
+                       theApp->bufferList().release(b);
                        return 0;
                }
        }
Index: BufferView.C
===================================================================
--- BufferView.C        (revision 15153)
+++ BufferView.C        (working copy)
@@ -18,7 +18,6 @@
 
 #include "buffer.h"
 #include "buffer_funcs.h"
-#include "bufferlist.h"
 #include "bufferparams.h"
 #include "coordcache.h"
 #include "CutAndPaste.h"
@@ -60,6 +59,7 @@
 #include "insets/insettext.h"
 
 #include "frontends/Alert.h"
+#include "frontends/Application.h"
 #include "frontends/FileDialog.h"
 #include "frontends/font_metrics.h"
 
@@ -101,9 +101,7 @@
 using std::string;
 using std::vector;
 
-extern BufferList bufferlist;
 
-
 namespace {
 
 unsigned int const saved_positions_num = 20;
@@ -186,7 +184,7 @@
                lyxerr[Debug::INFO] << BOOST_CURRENT_FUNCTION
                                    << " No Buffer!" << endl;
                // We are closing the buffer, use the first buffer as current
-               buffer_ = bufferlist.first();
+               buffer_ = theApp->bufferList().first();
        } else {
                // Set current buffer
                buffer_ = b;
@@ -233,7 +231,7 @@
                s = filename;
 
        // File already open?
-       if (bufferlist.exists(s)) {
+       if (theApp->bufferList().exists(s)) {
                docstring const file = makeDisplayPath(s, 20);
                docstring text = bformat(_("The document %1$s is already "
                                                     "loaded.\n\nDo you want to 
revert "
@@ -242,11 +240,11 @@
                        text, 0, 1,  _("&Revert"), _("&Switch to document"));
 
                if (ret != 0) {
-                       setBuffer(bufferlist.getBuffer(s));
+                       setBuffer(theApp->bufferList().getBuffer(s));
                        return true;
                }
                // FIXME: should be LFUN_REVERT
-               if (!bufferlist.close(bufferlist.getBuffer(s), false))
+               if 
(!theApp->bufferList().close(theApp->bufferList().getBuffer(s), false))
                        return false;
                // Fall through to new load. (Asger)
        }
@@ -254,9 +252,9 @@
        Buffer * b = 0;
 
        if (found) {
-               b = bufferlist.newBuffer(s);
+               b = theApp->bufferList().newBuffer(s);
                if (!::loadLyXFile(b, s)) {
-                       bufferlist.release(b);
+                       theApp->bufferList().release(b);
                        return false;
                }
        } else {
@@ -310,7 +308,7 @@
 void BufferView::reload()
 {
        string const fn = buffer_->fileName();
-       if (bufferlist.close(buffer_, false))
+       if (theApp->bufferList().close(buffer_, false))
                loadLyXFile(fn);
 }
 
@@ -535,10 +533,10 @@
 
        if (fname != buffer_->fileName()) {
                Buffer * b = 0;
-               if (bufferlist.exists(fname))
-                       b = bufferlist.getBuffer(fname);
+               if (theApp->bufferList().exists(fname))
+                       b = theApp->bufferList().getBuffer(fname);
                else {
-                       b = bufferlist.newBuffer(fname);
+                       b = theApp->bufferList().newBuffer(fname);
                        // Don't ask, just load it
                        ::loadLyXFile(b, fname);
                }
Index: frontends/Application.C
===================================================================
--- frontends/Application.C     (revision 15153)
+++ frontends/Application.C     (working copy)
@@ -70,6 +70,18 @@
 }
 
 
+BufferList & Application::bufferList()
+{
+       return buffer_list_;
+}
+
+
+BufferList const & Application::bufferList() const
+{
+       return buffer_list_;
+}
+
+
 void Application::setBufferView(BufferView * buffer_view)
 {
        buffer_view_ = buffer_view;
Index: frontends/Application.h
===================================================================
--- frontends/Application.h     (revision 15153)
+++ frontends/Application.h     (working copy)
@@ -11,6 +11,7 @@
 #ifndef LYX_APPLICATION_H
 #define LYX_APPLICATION_H
 
+#include "bufferlist.h"
 #include "lyxfunc.h"
 #include "lyxserver.h"
 #include "lyxsocket.h"
@@ -69,6 +70,9 @@
        LyXServerSocket & socket();
        LyXServerSocket const & socket() const;
        ///
+       BufferList & bufferList();
+       BufferList const & bufferList() const;
+
        void setBufferView(BufferView * buffer_view);
 
 protected:
@@ -86,6 +90,8 @@
        boost::scoped_ptr<LyXServer> lyx_server_;
        ///
        boost::scoped_ptr<LyXServerSocket> lyx_socket_;
+       ///
+       BufferList buffer_list_;
 
 }; // Application
 
Index: frontends/controllers/ControlPrefs.C
===================================================================
--- frontends/controllers/ControlPrefs.C        (revision 15153)
+++ frontends/controllers/ControlPrefs.C        (working copy)
@@ -15,12 +15,13 @@
 #include "helper_funcs.h"
 #include "Kernel.h"
 
-#include "bufferlist.h"
 #include "gettext.h"
 #include "funcrequest.h"
 #include "paper.h"
 #include "LColor.h"
 
+#include "frontends/Application.h"
+
 #include "support/filefilterlist.h"
 
 #include <sstream>
@@ -31,8 +32,6 @@
 using std::vector;
 
 
-extern BufferList bufferlist;
-
 namespace lyx {
 
 using support::FileFilterList;
@@ -67,7 +66,7 @@
        kernel().dispatch(FuncRequest(LFUN_LYXRC_APPLY, ss.str()));
 
        // FIXME: these need lfuns
-       bufferlist.setCurrentAuthor(rc_.user_name, rc_.user_email);
+       theApp->bufferList().setCurrentAuthor(rc_.user_name, rc_.user_email);
 
        ::formats = formats_;
 
Index: frontends/controllers/ControlRef.C
===================================================================
--- frontends/controllers/ControlRef.C  (revision 15153)
+++ frontends/controllers/ControlRef.C  (working copy)
@@ -13,17 +13,15 @@
 
 #include "ControlRef.h"
 #include "buffer.h"
-#include "bufferlist.h"
 #include "funcrequest.h"
 
+#include "frontends/Application.h"
+
 #include "support/filetools.h" // MakeAbsPath, MakeDisplayPath
 
 using std::vector;
 using std::string;
 
-
-extern BufferList bufferlist;
-
 namespace lyx {
 
 using support::makeAbsPath;
@@ -38,7 +36,7 @@
 
 vector<string> const ControlRef::getLabelList(string const & name) const
 {
-       Buffer const & buf = *bufferlist.getBuffer(makeAbsPath(name));
+       Buffer const & buf = *theApp->bufferList().getBuffer(makeAbsPath(name));
        vector<string> list;
        buf.getLabelList(list);
        return list;
@@ -60,7 +58,7 @@
 
 vector<string> const ControlRef::getBufferList() const
 {
-       vector<string> buffers = bufferlist.getFileNames();
+       vector<string> buffers = theApp->bufferList().getFileNames();
        for (vector<string>::iterator it = buffers.begin();
             it != buffers.end(); ++it) {
                *it = lyx::to_utf8(makeDisplayPath(*it));
@@ -72,7 +70,7 @@
 
 int ControlRef::getBufferNum() const
 {
-       vector<string> buffers = bufferlist.getFileNames();
+       vector<string> buffers = theApp->bufferList().getFileNames();
        string const name = kernel().buffer().fileName();
        vector<string>::const_iterator cit =
                find(buffers.begin(), buffers.end(), name);
@@ -83,7 +81,7 @@
 
 string const ControlRef::getBufferName(int num) const
 {
-       return bufferlist.getFileNames()[num];
+       return theApp->bufferList().getFileNames()[num];
 }
 
 } // namespace frontend
Index: frontends/qt4/lyx_gui.C
===================================================================
--- frontends/qt4/lyx_gui.C     (revision 15159)
+++ frontends/qt4/lyx_gui.C     (working copy)
@@ -15,7 +15,6 @@
 #include "lyx_gui.h"
 
 // FIXME: move this stuff out again
-#include "bufferlist.h"
 #include "Color.h"
 #include "funcrequest.h"
 #include "LColor.h"
Index: importer.C
===================================================================
--- importer.C  (revision 15153)
+++ importer.C  (working copy)
@@ -19,9 +19,10 @@
 #include "funcrequest.h"
 #include "lyx_cb.h"
 
-#include "bufferlist.h"
 #include "support/filetools.h"
+
 #include "frontends/Alert.h"
+
 #include "gettext.h"
 #include "BufferView.h"
 #include "buffer_funcs.h"
@@ -36,9 +37,6 @@
 using std::vector;
 
 
-extern BufferList bufferlist;
-
-
 bool Importer::Import(LyXView * lv, string const & filename,
                      string const & format, ErrorList & errorList)
 {
Index: insets/insetinclude.C
===================================================================
--- insets/insetinclude.C       (revision 15153)
+++ insets/insetinclude.C       (working copy)
@@ -14,7 +14,6 @@
 
 #include "buffer.h"
 #include "buffer_funcs.h"
-#include "bufferlist.h"
 #include "bufferparams.h"
 #include "BufferView.h"
 #include "cursor.h"
@@ -32,6 +31,7 @@
 #include "outputparams.h"
 
 #include "frontends/Alert.h"
+#include "frontends/Application.h"
 #include "frontends/Painter.h"
 
 #include "graphics/PreviewImage.h"
@@ -82,9 +82,7 @@
 
 namespace fs = boost::filesystem;
 
-extern BufferList bufferlist;
 
-
 namespace {
 
 string const uniqueID()
@@ -319,7 +317,7 @@
        if (!isLyXFilename(included_file))
                return 0;
 
-       return bufferlist.getBuffer(included_file);
+       return theApp->bufferList().getBuffer(included_file);
 }
 
 
@@ -333,12 +331,12 @@
        if (!isLyXFilename(included_file))
                return false;
 
-       Buffer * buf = bufferlist.getBuffer(included_file);
+       Buffer * buf = theApp->bufferList().getBuffer(included_file);
        if (!buf) {
                // the readonly flag can/will be wrong, not anymore I think.
                if (!fs::exists(included_file))
                        return false;
-               buf = bufferlist.newBuffer(included_file);
+               buf = theApp->bufferList().newBuffer(included_file);
                if (!loadLyXFile(buf, included_file))
                        return false;
        }
@@ -386,7 +384,7 @@
                // Don't try to load or copy the file
                ;
        else if (loadIfNeeded(buffer, params_)) {
-               Buffer * tmp = bufferlist.getBuffer(included_file);
+               Buffer * tmp = theApp->bufferList().getBuffer(included_file);
 
                if (tmp->params().textclass != m_buffer->params().textclass) {
                        // FIXME UNICODE
@@ -499,7 +497,7 @@
        string writefile = changeExtension(included_file, ".sgml");
 
        if (loadIfNeeded(buffer, params_)) {
-               Buffer * tmp = bufferlist.getBuffer(included_file);
+               Buffer * tmp = theApp->bufferList().getBuffer(included_file);
 
                string const mangled = FileName(writefile).mangledFilename();
                writefile = makeAbsPath(mangled,
@@ -560,7 +558,7 @@
        // to be loaded:
        if (loadIfNeeded(buffer, params_)) {
                // a file got loaded
-               Buffer * const tmp = bufferlist.getBuffer(included_file);
+               Buffer * const tmp = 
theApp->bufferList().getBuffer(included_file);
                if (tmp) {
                        // We must temporarily change features.buffer,
                        // otherwise it would always be the master buffer,
@@ -578,7 +576,7 @@
 {
        if (loadIfNeeded(buffer, params_)) {
                string const included_file = includedFilename(buffer, params_);
-               Buffer * tmp = bufferlist.getBuffer(included_file);
+               Buffer * tmp = theApp->bufferList().getBuffer(included_file);
                tmp->setParentName("");
                tmp->getLabelList(list);
                tmp->setParentName(parentFilename(buffer));
@@ -591,7 +589,7 @@
 {
        if (loadIfNeeded(buffer, params_)) {
                string const included_file = includedFilename(buffer, params_);
-               Buffer * tmp = bufferlist.getBuffer(included_file);
+               Buffer * tmp = theApp->bufferList().getBuffer(included_file);
                tmp->setParentName("");
                tmp->fillWithBibKeys(keys);
                tmp->setParentName(parentFilename(buffer));
Index: LaTeX.C
===================================================================
--- LaTeX.C     (revision 15153)
+++ LaTeX.C     (working copy)
@@ -15,11 +15,13 @@
 #include <config.h>
 
 #include "LaTeX.h"
-#include "bufferlist.h"
 #include "gettext.h"
 #include "lyxrc.h"
 #include "debug.h"
 #include "DepTable.h"
+
+#include "frontends/Application.h"
+
 #include "support/filetools.h"
 #include "support/convert.h"
 #include "support/lstrings.h"
@@ -70,7 +72,7 @@
 using std::vector;
 
 // TODO: in no particular order
-// - get rid of the extern BufferList and the call to
+// - get rid of the call to
 //   BufferList::updateIncludedTeXfiles, this should either
 //   be done before calling LaTeX::funcs or in a completely
 //   different way.
@@ -80,8 +82,6 @@
 // - somewhere support viewing of bibtex and makeindex log files.
 // - we should perhaps also scan the bibtex log file
 
-extern BufferList bufferlist;
-
 namespace {
 
 docstring runMessage(unsigned int count)
@@ -179,7 +179,7 @@
        bool rerun = false; // rerun requested
 
        // The class LaTeX does not know the temp path.
-       bufferlist.updateIncludedTeXfiles(getcwd(), runparams);
+       theApp->bufferList().updateIncludedTeXfiles(getcwd(), runparams);
 
        // Never write the depfile if an error was encountered.
 
Index: lyx_cb.C
===================================================================
--- lyx_cb.C    (revision 15153)
+++ lyx_cb.C    (working copy)
@@ -17,7 +17,6 @@
 #include "lyx_cb.h"
 
 #include "buffer.h"
-#include "bufferlist.h"
 #include "BufferView.h"
 #include "buffer_funcs.h"
 #include "cursor.h"
@@ -32,6 +31,7 @@
 #include "paragraph.h"
 
 #include "frontends/Alert.h"
+#include "frontends/Application.h"
 #include "frontends/FileDialog.h"
 #include "frontends/lyx_gui.h"
 
@@ -88,7 +88,6 @@
 using std::istream_iterator;
 
 
-extern BufferList bufferlist;
 // this should be static, but I need it in buffer.C
 bool quitting; // flag, that we are quitting the program
 
@@ -192,7 +191,7 @@
        lyxerr[Debug::INFO] << "Running QuitLyX." << endl;
 
        if (lyx_gui::use_gui) {
-               if (!noask && !bufferlist.quitWriteAll())
+               if (!noask && !theApp->bufferList().quitWriteAll())
                        return;
 
                LyX::cref().session().writeFile();
@@ -203,7 +202,7 @@
        quitting = true;
 
        // close buffers first
-       bufferlist.closeAll();
+       theApp->bufferList().closeAll();
 
        // do any other cleanup procedures now
        lyxerr[Debug::INFO] << "Deleting tmp dir " << package().temp_dir() << 
endl;
Index: lyx_main.C
===================================================================
--- lyx_main.C  (revision 15153)
+++ lyx_main.C  (working copy)
@@ -19,7 +19,6 @@
 
 #include "buffer.h"
 #include "buffer_funcs.h"
-#include "bufferlist.h"
 #include "converter.h"
 #include "debug.h"
 #include "encoding.h"
@@ -89,9 +88,6 @@
 #endif
 
 
-// This is the global bufferlist object
-BufferList bufferlist;
-
 // convenient to have it here.
 boost::scoped_ptr<kb_keymap> toplevel_keymap;
 
@@ -275,7 +271,7 @@
                                if (b)
                                        last_loaded = b;
                        } else {
-                               Buffer * buf = bufferlist.newBuffer(s, false);
+                               Buffer * buf = 
theApp->bufferList().newBuffer(s, false);
                                if (loadLyXFile(buf, s)) {
                                        last_loaded = buf;
                                        ErrorList const & el = 
buf->errorList("Parse");
@@ -284,7 +280,7 @@
                                                        
boost::bind(&LyX::printError, this, _1));
                                }
                                else
-                                       bufferlist.release(buf);
+                                       theApp->bufferList().release(buf);
                        }
                }
 
@@ -658,7 +654,7 @@
        // contain documents etc. which might be helpful on
        // a crash
 
-       bufferlist.emergencyWriteAll();
+       theApp->bufferList().emergencyWriteAll();
        theApp->server().emergencyCleanup();
 }
 
Index: lyxfunc.C
===================================================================
--- lyxfunc.C   (revision 15153)
+++ lyxfunc.C   (working copy)
@@ -24,7 +24,6 @@
 #include "BranchList.h"
 #include "buffer.h"
 #include "buffer_funcs.h"
-#include "bufferlist.h"
 #include "bufferparams.h"
 #include "BufferView.h"
 #include "cursor.h"
@@ -138,8 +137,6 @@
 namespace fs = boost::filesystem;
 
 
-extern BufferList bufferlist;
-
 extern boost::scoped_ptr<kb_keymap> toplevel_keymap;
 
 // (alkis)
@@ -1082,15 +1079,15 @@
 
                // --- buffers ----------------------------------------
                case LFUN_BUFFER_SWITCH:
-                       owner->setBuffer(bufferlist.getBuffer(argument));
+                       
owner->setBuffer(theApp->bufferList().getBuffer(argument));
                        break;
 
                case LFUN_BUFFER_NEXT:
-                       owner->setBuffer(bufferlist.next(view()->buffer()));
+                       
owner->setBuffer(theApp->bufferList().next(view()->buffer()));
                        break;
 
                case LFUN_BUFFER_PREVIOUS:
-                       owner->setBuffer(bufferlist.previous(view()->buffer()));
+                       
owner->setBuffer(theApp->bufferList().previous(view()->buffer()));
                        break;
 
                case LFUN_FILE_NEW:
@@ -1130,14 +1127,14 @@
                        if (prefixIs(file_name, package().temp_dir())) {
                                // Needed by inverse dvi search. If it is a file
                                // in tmpdir, call the apropriated function
-                               
owner->setBuffer(bufferlist.getBufferFromTmp(file_name));
+                               
owner->setBuffer(theApp->bufferList().getBufferFromTmp(file_name));
                        } else {
                                // Must replace extension of the file to be .lyx
                                // and get full path
                                string const s = changeExtension(file_name, 
".lyx");
                                // Either change buffer or load the file
-                               if (bufferlist.exists(s)) {
-                                       
owner->setBuffer(bufferlist.getBuffer(s));
+                               if (theApp->bufferList().exists(s)) {
+                                       
owner->setBuffer(theApp->bufferList().getBuffer(s));
                                } else {
                                        owner->loadLyXFile(s);
                                }
@@ -1287,8 +1284,8 @@
                                         makeDisplayPath(filename) + 
lyx::from_ascii("..."));
                        view()->savePosition(0);
                        string const parentfilename = 
owner->buffer()->fileName();
-                       if (bufferlist.exists(filename))
-                               
owner->setBuffer(bufferlist.getBuffer(filename));
+                       if (theApp->bufferList().exists(filename))
+                               
owner->setBuffer(theApp->bufferList().getBuffer(filename));
                        else
                                owner->loadLyXFile(filename);
                        // Set the parent name of the child document.
@@ -1703,7 +1700,7 @@
        if (filename.empty()) {
                filename = addName(lyxrc.document_path,
                            "newfile" + convert<string>(++newfile_number) + 
".lyx");
-               while (bufferlist.exists(filename) || 
fs::is_readable(filename)) {
+               while (theApp->bufferList().exists(filename) || 
fs::is_readable(filename)) {
                        ++newfile_number;
                        filename = addName(lyxrc.document_path,
                                           "newfile" +  
convert<string>(newfile_number) +
@@ -1864,8 +1861,8 @@
        string const lyxfile = changeExtension(filename, ".lyx");
 
        // Check if the document already is open
-       if (lyx_gui::use_gui && bufferlist.exists(lyxfile)) {
-               if (!bufferlist.close(bufferlist.getBuffer(lyxfile), true)) {
+       if (lyx_gui::use_gui && theApp->bufferList().exists(lyxfile)) {
+               if 
(!theApp->bufferList().close(theApp->bufferList().getBuffer(lyxfile), true)) {
                        owner->message(_("Canceled."));
                        return;
                }
@@ -1898,14 +1895,14 @@
        // save current cursor position
        LyX::ref().session().saveFilePosition(owner->buffer()->fileName(),
                boost::tie(view()->cursor().pit(), view()->cursor().pos()) );
-       if (bufferlist.close(owner->buffer(), true) && !quitting) {
-               if (bufferlist.empty()) {
+       if (theApp->bufferList().close(owner->buffer(), true) && !quitting) {
+               if (theApp->bufferList().empty()) {
                        // need this otherwise SEGV may occur while
                        // trying to set variables that don't exist
                        // since there's no current buffer
                        owner->getDialogs().hideBufferDependent();
                } else {
-                       owner->setBuffer(bufferlist.first());
+                       owner->setBuffer(theApp->bufferList().first());
                }
        }
 }
Index: MenuBackend.C
===================================================================
--- MenuBackend.C       (revision 15153)
+++ MenuBackend.C       (working copy)
@@ -19,7 +19,6 @@
 
 #include "BranchList.h"
 #include "buffer.h"
-#include "bufferlist.h"
 #include "bufferparams.h"
 #include "CutAndPaste.h"
 #include "debug.h"
@@ -37,6 +36,7 @@
 #include "lyxlex.h"
 #include "toc.h"
 
+#include "frontends/Application.h"
 #include "frontends/LyXView.h"
 
 #include "support/filetools.h"
@@ -67,7 +67,6 @@
 using std::vector;
 
 
-extern BufferList bufferlist;
 extern boost::scoped_ptr<kb_keymap> toplevel_keymap;
 
 namespace {
@@ -448,7 +447,7 @@
 void expandDocuments(Menu & tomenu, LyXView const * view)
 {
        typedef vector<string> Strings;
-       Strings const names = bufferlist.getFileNames();
+       Strings const names = theApp->bufferList().getFileNames();
 
        if (names.empty()) {
                tomenu.add(MenuItem(MenuItem::Command, _("No Documents Open!"),

Reply via email to