diff --git a/pkgs/applications/version-management/codeville/0.8.0.nix b/pkgs/applications/version-management/codeville/0.8.0.nix
new file mode 100644
index 000000000000..57552bac2fca
--- /dev/null
+++ b/pkgs/applications/version-management/codeville/0.8.0.nix
@@ -0,0 +1,23 @@
+args : with args; 
+
+if (! python ? db4Support) || (! python.db4Support) then 
+  throw ''Python DB4 support is required for codeville.'' 
+else
+
+rec {
+  src = fetchurl {
+    url = http://codeville.org/download/Codeville-0.8.0.tar.gz;
+    sha256 = "1p8zc4ijwcwf5bxl34n8d44mlxk1zhbpca68r93ywxqkqm2aqz37";
+  };
+
+  buildInputs = [python makeWrapper];
+  configureFlags = [];
+
+  /* doConfigure should be specified separately */
+  phaseNames = ["installPythonPackage" (makeManyWrappers ''$out/bin/*'' ''--prefix PYTHONPATH : $(toPythonPath $out)'')];
+      
+  name = "codeville-" + version;
+  meta = {
+    description = "Codeville - RCS with powerful merge.";
+  };
+}
diff --git a/pkgs/development/interpreters/python/2.5/default.nix b/pkgs/development/interpreters/python/2.5/default.nix
index 0fe35a8a5064..f2a81c7f763f 100644
--- a/pkgs/development/interpreters/python/2.5/default.nix
+++ b/pkgs/development/interpreters/python/2.5/default.nix
@@ -1,6 +1,7 @@
 {stdenv, fetchurl, zlib ? null, zlibSupport ? true, bzip2,
  gdbmSupport ? true, gdbm ? null
  , sqlite ? null
+ , db4 ? null
  }:
 
 assert zlibSupport -> zlib != null;
@@ -16,6 +17,7 @@ let
     ++ optional zlibSupport zlib
     ++ optional gdbmSupport gdbm
     ++ optional (sqlite != null) sqlite
+    ++ optional (db4 != null) db4
     ;
 
 in
@@ -54,6 +56,8 @@ stdenv.mkDerivation {
 
   passthru = {
     inherit zlibSupport;
+    sqliteSupport = sqlite != null;
+    db4Support = db4 != null;
     libPrefix = "python2.5";
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c81c43abcd0a..1798c7aa9911 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1835,7 +1835,10 @@ let pkgs = rec {
   python25Fun = lib.sumArgs (import ../development/interpreters/python/2.5) {
     inherit fetchurl stdenv zlib bzip2 gdbm;
   };
-  python25 = python25Fun null;
+  python25 = python25Fun {
+    db4 = if getConfig ["python" "db4Support"] false then db4 else null;
+    sqlite = if getConfig ["python" "sqlite"] false then sqlite else null;
+  } null;
 
   pyrex = pyrex095;
 
@@ -5140,6 +5143,11 @@ let pkgs = rec {
     inherit fetchurl stdenv emacs texinfo ctags;
   };
 
+  codeville = builderDefsPackage (selectVersion ../applications/version-management/codeville "0.8.0") {
+    python = python25;
+    inherit makeWrapper;
+  } null;
+
   cua = import ../applications/editors/emacs-modes/cua {
     inherit fetchurl stdenv;
   };