diff --git a/CMakeModules/FindSvnClient.cmake b/CMakeModules/FindSvnClient.cmake
index b238d3f56..717b8b04d 100644
--- a/CMakeModules/FindSvnClient.cmake
+++ b/CMakeModules/FindSvnClient.cmake
@@ -19,17 +19,7 @@ if(HAVE_APR_CONFIG)
 	string(STRIP ${RAW_APR_LIBS} APR_LIBS)
 
 else(HAVE_APR_CONFIG)
-	FIND_LIBRARY(APR_LIBS
-	  NAMES libapr-1 apr-1
-	  HINTS
-	  PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
-	  PATHS
-	  ~/Library/Frameworks
-	  /Library/Frameworks
-	  /usr/local
-	  /usr
-	  /opt
-	)
+    message(STATUS "apr-1-config not found, implement manual search for APR")
 endif(HAVE_APR_CONFIG)
 
 find_path(LIBSVN_INCLUDE_DIR svn_client.h
@@ -42,49 +32,17 @@ find_path(LIBSVN_INCLUDE_DIR svn_client.h
   /opt
 )
 
-FIND_LIBRARY(SVNCLIENT_LIBRARY
-  NAMES libsvn_client-1 svn_client-1
-  HINTS
-  PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
-  PATHS
-  ~/Library/Frameworks
-  /Library/Frameworks
-  /usr/local
-  /usr
-  /opt
-)
-
-FIND_LIBRARY(SVNSUBR_LIBRARY
-  NAMES libsvn_subr-1 svn_subr-1
-  HINTS
-  PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
-  PATHS
-  ~/Library/Frameworks
-  /Library/Frameworks
-  /usr/local
-  /usr
-  /opt
-)
-
-FIND_LIBRARY(SVNRA_LIBRARY
-  NAMES libsvn_ra-1 svn_ra-1
-  HINTS
-  PATH_SUFFIXES lib64 lib libs64 libs libs/Win32 libs/Win64
-  PATHS
-  ~/Library/Frameworks
-  /Library/Frameworks
-  /usr/local
-  /usr
-  /opt
-)
+check_library_exists(svn_client-1 svn_client_checkout "" HAVE_LIB_SVNCLIENT)
+check_library_exists(svn_subr-1 svn_cmdline_init "" HAVE_LIB_SVNSUBR)
+check_library_exists(svn_ra-1 svn_ra_initialize "" HAVE_LIB_SVNRA)
 
 include(FindPackageHandleStandardArgs)
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBSVN DEFAULT_MSG 
-    SVNSUBR_LIBRARY 
-    SVNCLIENT_LIBRARY
-    SVNRA_LIBRARY 
+    HAVE_LIB_SVNSUBR 
+    HAVE_LIB_SVNCLIENT
+    HAVE_LIB_SVNRA 
     LIBSVN_INCLUDE_DIR)
 
 if(LIBSVN_FOUND)
-	set(LIBSVN_LIBRARIES ${SVNCLIENT_LIBRARY} ${SVNSUBR_LIBRARY} ${SVNRA_LIBRARY} ${APR_LIBS})
+    set(LIBSVN_LIBRARIES "svn_client-1" "svn_subr-1" "svn_ra-1" ${APR_LIBS})
 endif(LIBSVN_FOUND)
diff --git a/src/Scenery/SceneryPager.cxx b/src/Scenery/SceneryPager.cxx
index 183511361..9328973ef 100644
--- a/src/Scenery/SceneryPager.cxx
+++ b/src/Scenery/SceneryPager.cxx
@@ -44,15 +44,12 @@ SceneryPager::~SceneryPager()
 {
 }
 
+#if SG_PAGEDLOD_HAS_OPTIONS
+#else
 void SceneryPager::requestNodeFile(const std::string& fileName, Group* group,
                                    float priority, const FrameStamp* framestamp,
                                    ref_ptr<Referenced>& databaseRequest,
-#if SG_OSG_MIN_VERSION_REQUIRED(2,9,5)
-                                   const osg::Referenced* options
-#else
-                                   osgDB::ReaderWriter::Options* options
-#endif
-                                   )
+                                   osgDB::ReaderWriter::Options* options)
 {
     simgear::SGPagedLOD *sgplod = dynamic_cast<simgear::SGPagedLOD*>(group);
     if(sgplod)
@@ -64,6 +61,7 @@ void SceneryPager::requestNodeFile(const std::string& fileName, Group* group,
                                        databaseRequest,
                                        options);
 }
+#endif
 
 void SceneryPager::queueRequest(const std::string& fileName, Group* group,
                                 float priority, FrameStamp* frameStamp,
@@ -81,6 +79,35 @@ void SceneryPager::queueDeleteRequest(osg::ref_ptr<osg::Object>& objptr)
     _deleteRequests.push_back(objptr);
     objptr = 0;
 }
+
+// Work around interface change in
+// osgDB::DatabasePager::requestNodeFile
+namespace
+{
+struct NodePathProxy
+{
+    NodePathProxy(NodePath& nodePath)
+        : _nodePath(nodePath)
+    {
+    }
+    operator Group* () { return static_cast<Group*>(_nodePath.back()); }
+    operator NodePath& () { return _nodePath; }
+    NodePath& _nodePath;
+};
+}
+
+void SceneryPager::PagerRequest::doRequest(SceneryPager* pager)
+{
+    if (_group->getNumChildren() == 0) {
+        NodePath path;
+        path.push_back(_group.get());
+        pager->requestNodeFile(_fileName, NodePathProxy(path), _priority,
+                               _frameStamp.get(),
+                               *_databaseRequest,
+                               _options.get());
+    }
+}
+
 void SceneryPager::signalEndFrame()
 {
     using namespace std;
diff --git a/src/Scenery/SceneryPager.hxx b/src/Scenery/SceneryPager.hxx
index ba018993c..04e6ef5c4 100644
--- a/src/Scenery/SceneryPager.hxx
+++ b/src/Scenery/SceneryPager.hxx
@@ -28,6 +28,7 @@
 #include <osgDB/DatabasePager>
 
 #include <simgear/structure/OSGVersion.hxx>
+#include <simgear/scene/model/SGPagedLOD.hxx>
 
 namespace flightgear
 {
@@ -39,16 +40,14 @@ public:
     // Unhide DatabasePager::requestNodeFile
     using osgDB::DatabasePager::requestNodeFile;
     // reimplement to add readerWriterOptions from SGPagedLOD
+#if SG_PAGEDLOD_HAS_OPTIONS
+#else
     virtual void requestNodeFile(const std::string& fileName, osg::Group* group,
                                  float priority,
                                  const osg::FrameStamp* framestamp,
                                  osg::ref_ptr<osg::Referenced>& databaseRequest,
-#if SG_OSG_MIN_VERSION_REQUIRED(2,9,5)
-                                 const osg::Referenced* options
-#else
-                                 osgDB::ReaderWriter::Options* options
+                                 osgDB::ReaderWriter::Options* options);
 #endif
-                                 );
     void queueRequest(const std::string& fileName, osg::Group* node,
                       float priority, osg::FrameStamp* frameStamp,
                       osg::ref_ptr<osg::Referenced>& databaseRequest,
@@ -77,15 +76,7 @@ protected:
             _databaseRequest(&databaseRequest)
         {}
 
-        void doRequest(SceneryPager* pager)
-        {
-            if (_group->getNumChildren() == 0)
-                pager->requestNodeFile(_fileName, _group.get(), _priority,
-                                       _frameStamp.get(),
-                                       *_databaseRequest,
-                                       _options.get());
-        }
-
+        void doRequest(SceneryPager* pager);
         std::string _fileName;
         osg::ref_ptr<osg::Group> _group;
         float _priority;