diff --git a/pkgs/tools/typesetting/tex/pgf/3.x.nix b/pkgs/tools/typesetting/tex/pgf/3.x.nix
new file mode 100644
index 000000000000..9a03500bb962
--- /dev/null
+++ b/pkgs/tools/typesetting/tex/pgf/3.x.nix
@@ -0,0 +1,26 @@
+{stdenv, fetchurl, unzip}:
+
+stdenv.mkDerivation {
+  name = "pgf-3.00";
+  
+  src = fetchurl {
+    url = http://downloads.sourceforge.net/project/pgf/pgf/version%203.0.0/pgf_3.0.0.tds.zip;
+    sha256 = "0kj769hyp4z2zmdv3f8xv443wcfqn5nkkbzxzqgfxjizlz81aav7";
+  };
+  
+  buildInputs = [ unzip ];
+
+  # Multiple files problem
+  unpackPhase = ''
+    mkdir pgf
+    cd pgf
+    unzip $src
+  '';
+
+  buildPhase = "true";
+  
+  installPhase = "
+    mkdir -p $out/share/texmf-nix
+    cp -prd * $out/share/texmf-nix
+  ";
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3262110cf0f5..d4571d8ed506 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -11919,6 +11919,8 @@ let
 
   pgf2 = callPackage ../tools/typesetting/tex/pgf/2.x.nix { };
 
+  pgf3 = callPackage ../tools/typesetting/tex/pgf/3.x.nix { };
+
   pgfplots = callPackage ../tools/typesetting/tex/pgfplots { };
 
   phabricator = callPackage ../misc/phabricator { };