diff --git a/doc/.gitignore b/doc/.gitignore
index c07144f2eed31c3b090a501de852067973fccdbe..9c7fca586796706bf57c468ed6b9cddf336bc6ea 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1,8 +1,5 @@
 .deps
-doxygen-tag
 doxygen.log
-html
-latex
 Makefile
 Makefile.in
 semantic.cache
\ No newline at end of file
diff --git a/doc/Makefile.am b/doc/Makefile.am
index b2efdb62542523edd42b1fc8b278f78dee2455af..ecd6127cae3a203882efa3929702664866d69c0d 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,34 +1,6 @@
 # $Id$
 
 # distribute these files:
-EXTRA_DIST = Buildsystem CodingStyles Doxyfile Doxydep \
-  doxy-footer.html doxy-header.html dune-doxy.css mainpage
+EXTRA_DIST = BuildSystem CodingStyles
 
-all: doxygen-tag
-
-WEBDIR = /var/www/dune/doxygen
-WEBFILES = html/*.html html/*.css html/*.png doxygen.log
-
-# what files does the doxygen-generated stuff depend on (find-syntax)
-DEPENDON = -name \*.cc -o -name \*.hh -o -name \*.css -o -name \*.html -o -name \*.png
-
-# check dependency ourself to be robust
-doxygen-tag: FORCE
-	set -e; \
-	if test ! -e doxygen-tag || test x"`find $(top_srcdir) \( $(DEPENDON) \) -a -cnewer doxygen-tag -print`" != x ; then \
-	  echo Running doxygen. This may take a while... ; \
-	  $(DOXYGEN) > doxygen.log 2>&1 <&- ; \
-	  touch doxygen-tag ; \
-	fi
-
-# nice trick from the GNU make infopage to force a rule to run
-FORCE:
-
-web-install: doxygen-tag
-	if [ ! -d $(WEBDIR) ]; then \
-	  install -d -g web -m 775 $(WEBDIR); \
-	fi
-	install -g web -m 664 $(WEBFILES) $(WEBDIR)
-
-clean-local:
-	rm -rf html latex doxygen-tag *~
+SUBDIRS = doxygen
diff --git a/doc/doxygen/.gitignore b/doc/doxygen/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..c07144f2eed31c3b090a501de852067973fccdbe
--- /dev/null
+++ b/doc/doxygen/.gitignore
@@ -0,0 +1,8 @@
+.deps
+doxygen-tag
+doxygen.log
+html
+latex
+Makefile
+Makefile.in
+semantic.cache
\ No newline at end of file
diff --git a/doc/Doxydep b/doc/doxygen/Doxydep
similarity index 100%
rename from doc/Doxydep
rename to doc/doxygen/Doxydep
diff --git a/doc/Doxyfile b/doc/doxygen/Doxyfile
similarity index 99%
rename from doc/Doxyfile
rename to doc/doxygen/Doxyfile
index 1849f5e73a66354e07d8b08e3dbe4893da006539..1d84e5a0dc621d436a8ac517652c1c565d40defd 100644
--- a/doc/Doxyfile
+++ b/doc/doxygen/Doxyfile
@@ -362,13 +362,13 @@ WARN_LOGFILE           =
 # with spaces.
 
 INPUT                  = mainpage \
-                         ../grid \
-                         ../fem \
-                         ../common \
-                         ../quadrature \
-                         ../solver \
-                         ../istl \
-                         ../io
+                         ../../grid \
+                         ../../fem \
+                         ../../common \
+                         ../../quadrature \
+                         ../../solver \
+                         ../../istl \
+                         ../../io
 
 # If the value of the INPUT tag contains directories, you can use the 
 # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
diff --git a/doc/doxygen/Makefile.am b/doc/doxygen/Makefile.am
new file mode 100644
index 0000000000000000000000000000000000000000..af8473b8528415123341279d0d71be46c0ef2254
--- /dev/null
+++ b/doc/doxygen/Makefile.am
@@ -0,0 +1,34 @@
+# $Id$
+
+# distribute these files:
+EXTRA_DIST = Doxyfile Doxydep \
+  doxy-footer.html doxy-header.html dune-doxy.css mainpage
+
+all: doxygen-tag
+
+WEBDIR = /var/www/dune/doxygen
+WEBFILES = html/*.html html/*.css html/*.png doxygen.log
+
+# what files does the doxygen-generated stuff depend on (find-syntax)
+DEPENDON = -name \*.cc -o -name \*.hh -o -name \*.css -o -name \*.html -o -name \*.png
+
+# check dependency ourself to be robust
+doxygen-tag: FORCE
+	set -e; \
+	if test ! -e doxygen-tag || test x"`find $(top_srcdir) \( $(DEPENDON) \) -a -cnewer doxygen-tag -print`" != x ; then \
+	  echo Running doxygen. This may take a while... ; \
+	  $(DOXYGEN) > doxygen.log 2>&1 <&- ; \
+	  touch doxygen-tag ; \
+	fi
+
+# nice trick from the GNU make infopage to force a rule to run
+FORCE:
+
+web-install: doxygen-tag
+	if [ ! -d $(WEBDIR) ]; then \
+	  install -d -g web -m 775 $(WEBDIR); \
+	fi
+	install -g web -m 664 $(WEBFILES) $(WEBDIR)
+
+clean-local:
+	rm -rf html latex doxygen-tag *~
diff --git a/doc/doxy-footer.html b/doc/doxygen/doxy-footer.html
similarity index 100%
rename from doc/doxy-footer.html
rename to doc/doxygen/doxy-footer.html
diff --git a/doc/doxy-header.html b/doc/doxygen/doxy-header.html
similarity index 100%
rename from doc/doxy-header.html
rename to doc/doxygen/doxy-header.html
diff --git a/doc/dune-doxy.css b/doc/doxygen/dune-doxy.css
similarity index 100%
rename from doc/dune-doxy.css
rename to doc/doxygen/dune-doxy.css
diff --git a/doc/mainpage b/doc/doxygen/mainpage
similarity index 100%
rename from doc/mainpage
rename to doc/doxygen/mainpage