return ret;
 }
 
+
+bool
+IniFile::sectionExists(const string §ionName) const
+{
+    return findSection(sectionName) != NULL;
+}
+
+
 bool
 IniFile::Section::printUnreferenced(const string §ionName)
 {
 
     bool findAppend(const std::string §ion, const std::string &entry,
                     std::string &value) const;
 
+    /// Determine whether the named section exists in the .ini file.
+    /// Note that the 'Section' class is (intentionally) not public,
+    /// so all clients can do is get a bool that says whether there
+    /// are any values in that section or not.
+    /// @return True if the section exists.
+    bool sectionExists(const std::string §ion) const;
+
     /// Print unreferenced entries in object.  Iteratively calls
     /// printUnreferend() on all the constituent sections.
     bool printUnreferenced();
 
 
     bool findObj(const std::string §ion, const std::string &entry,
                  Serializeable *&value);
+
+    bool sectionExists(const std::string §ion);
 };