diff --git a/ResourceFactory.h b/ResourceFactory.h
index 202f87e65b8fb2bf40192ac52acb67b07ebe1561..a5bae6797d9e51cd8db35287e2bcb8a4ae72509d 100644
--- a/ResourceFactory.h
+++ b/ResourceFactory.h
@@ -8,19 +8,18 @@
 #include "Resource.h"
 
 /**
- * \brief This factory instantiates Resource objects using a given identifier
+ * \brief This factory instantiates %Resource objects using a given identifier
  * 
  * During contruction of the factory object itself it loads all available resources into
  * an internal cache. The user can subsequently request a copy of this resource by specifying
  * it using the resource's identifier.
  *
  * The resource data is expected to be stored in these three externally linked arrays:
- * <ul>
- * 	<li>\ref c_ResourceIdentifiers</li>
- * 	<li>\ref c_ResourceIndex</li> 
- * 	<li>\ref c_ResourceStorage</li>
- * </ul>
- * These arrays are compiled using the Open Resource Compiler (ORC) which can be found
+ * - \ref c_ResourceIdentifiers
+ * - \ref c_ResourceIndex 
+ * - \ref c_ResourceStorage
+ *
+ * These arrays are compiled using the Open %Resource Compiler (ORC) which can be found
  * in the \c orc subdirectory.
  * 
  * \see Resource
@@ -73,12 +72,8 @@ extern const string c_ResourceIdentifiers[];
  * This two-dimensional array contains the necessary indices for
  * every resource in the storage container. Using these indices you
  * can easily extract a requested resource:
- * <ol>
- * 	<li>Offset to the resource</li>
- * 	<li>Length of the resource</li>
- * </ol> 
- * 
- * \see c_ResourceStorage
+ * -# Offset to the resource
+ * -# Length of the resource
  * 
  * \todo Does this need to be global?
  * Maybe we should wrap a class around the generated resources?
@@ -92,8 +87,6 @@ extern const unsigned int c_ResourceIndex[][2];
  * expressed as hex values. Use the resource index to locate/retrieve
  * a specific resource from the container.
  * 
- * \see c_ResourceIndex
- * 
  * \todo Does this need to be global?
  * Maybe we should wrap a class around the generated resources?
  */
diff --git a/orc/ResourceCompiler.h b/orc/ResourceCompiler.h
index e8f2be091209a6bd5d618f59c94842c2bc82fa22..48c477165cf6af54d7775297ae0b76afad37e382 100644
--- a/orc/ResourceCompiler.h
+++ b/orc/ResourceCompiler.h
@@ -11,22 +11,86 @@
 
 using namespace std;
 
-
+/**
+ * \brief Helper class that converts binary resources into source code ready for compilation
+ * 
+ * This "compiler" takes a resource specification file, opens and loads the physical
+ * files and converts their contents into normal C/C++ source code. The source code
+ * comprises three arrays which can be subsequently compiled into object code which is
+ * then referenced by ResourceFactory using external linkage.
+ * \n
+ * %Resource specification file format:
+ * - Each line describes one resource
+ * - The descriptor has to look like this: LogicalResourceName|PhysicalResourceName
+ * - Lines starting with # are treated as comments
+ * - Empty lines are ignored
+ * 
+ * As you can see the logical and the physical (file) resource name are delimited by the pipe (|) character.
+ * The logical resource name will be used again later. It is the identifier used to request a resource via
+ * ResourceFactory::createInstance() 
+ * 
+ * \see ResourceFactory
+ * \see ResourceFactory::c_ResourceIdentifiers
+ * \see ResourceFactory::c_ResourceIndex
+ * \see ResourceFactory::c_ResourceStorage
+ */
 class ResourceCompiler
 {
 public:
+	/**
+	 * \brief Constructor
+	 * 
+	 * \param inputFilename Name of the resource specification file (source, \c *.orc)
+	 * \param outputFilename Name of the converted recources file (destination, \c *.cpp)
+	 */
 	ResourceCompiler(const string inputFilename, const string outputFilename);
+	
+	/// Destructor
 	virtual ~ResourceCompiler();
 	
+	/**
+	 * \brief Converts the specified resources into the specified source code file
+	 * 
+	 * It iterates over all resources found in the local cache and stores their data
+	 * and meta information as source code in the destination file. Thus parseInputFile()
+	 * and loadBinaryData() have to be called first for this to work.
+	 * 
+	 * \see parseInputFile
+	 * \see loadBinaryData
+	 */
 	void compile();
 	
 private:
+	/**
+	 * \brief Parses the specified input file
+	 * 
+	 * After validating the resource specification file its contents are
+	 * stored for later use.
+	 * 
+	 * \see loadBinaryData
+	 */
 	void parseInputFile();
+	
+	/**
+	 * \brief Loads binary resource file data into the local cache
+	 * 
+	 * This methods tries to open all resource files found by loadBinaryData()
+	 * and copies their binary data into the local cache.
+	 * 
+	 * \see parseInputFile
+	 */
 	void loadBinaryData();
 	
+	/// Path and filename of the resource specification file (source)
 	string m_ResourceSpecFile;
+	
+	/// Path and filename of the converted source code file (destination)
 	string m_ResourceCodeFile;
+	
+	/// Mapping between logical and physical resource names
 	map<string, string> m_ResourceFileMap;
+	
+	/// %Resource cache (identified by logical resource name)
 	map<string, vector<unsigned char> > m_ResourceDataMap;
 };