diff --git a/pkgs/applications/graphics/gocr/0.44.nix b/pkgs/applications/graphics/gocr/0.44.nix
new file mode 100644
index 000000000000..4bf7bda50cb2
--- /dev/null
+++ b/pkgs/applications/graphics/gocr/0.44.nix
@@ -0,0 +1,21 @@
+args : with args;
+	with builderDefs {
+		src = /* put a fetchurl here */
+fetchurl {
+		url = http://prdownloads.sourceforge.net/jocr/gocr-0.44.tar.gz;
+		sha256 = "0kvb7cbk6z5n4g0hhbwpdk2f3819yfamwsmkwanj99yhni6p5mr0";
+	};
+
+		buildInputs = [];
+		configureFlags = [];
+	} null; /* null is a terminator for sumArgs */
+stdenv.mkDerivation rec {
+	name = "gocr";
+	builder = writeScript (name + "-builder")
+		(textClosure [doConfigure doMakeInstall doForceShare doPropagate]);
+	meta = {
+		description = "
+		GPL Optical Character Recognition
+";
+	};
+}
diff --git a/pkgs/applications/graphics/gocr/default.nix b/pkgs/applications/graphics/gocr/default.nix
new file mode 100644
index 000000000000..c8e4bcf95456
--- /dev/null
+++ b/pkgs/applications/graphics/gocr/default.nix
@@ -0,0 +1,2 @@
+args : 
+(import (__toPath ((toString ./JustNothing/.. )+"/"+args.version+".nix"))) args
diff --git a/pkgs/misc/synaptics/default.nix b/pkgs/misc/synaptics/default.nix
index 66555e696712..c809046130db 100644
--- a/pkgs/misc/synaptics/default.nix
+++ b/pkgs/misc/synaptics/default.nix
@@ -7,9 +7,16 @@ stdenv.mkDerivation {
     md5 = "1102cd575045640a064ab6f9b1e391af";
   };
 
-  preBuild = "export NIX_CFLAGS_COMPILE=\"\${NIX_CFLAGS_COMPILE} -I${pixman}/include/pixman-1\"";
+  preBuild = "export NIX_CFLAGS_COMPILE=\"\${NIX_CFLAGS_COMPILE} -I${pixman}/include/pixman-1\";
+  	sed -e '/local-[>]motion_history_proc/d; /local-[>]history_size/d;' -i synaptics.c
+	sed -e '/ALLINCLUDES = /iX_INCLUDES_ROOT = /homeless-shelter' -i Makefile
+	sed -e 's@^CFLAGS =.*@& -DDBG=//@' -i Makefile
+	sed -e 's/miPointerGetMotionBufferSize()/&,2/' -i synaptics.c
+	sed -e 's/miPointerGetMotionEvents/GetMotionHistory/' -i synaptics.c
+	sed -e 's/miPointerGetMotionBufferSize/GetMotionHistorySize/' -i synaptics.c
+	";
   makeFlags="DESTDIR=\${out} PREFIX=/ ";
-  buildInputs = [libX11 pkgconfig xorgserver libXi libXext pixman];
+  buildInputs = [libX11 pkgconfig xorgserver libXi libXext pixman xf86inputevdev];
 
   meta = {
     description = "Driver for synaptics touchpad.";
diff --git a/pkgs/servers/x11/xorg/default.nix b/pkgs/servers/x11/xorg/default.nix
index 4fd7d82c0208..ed9227d7a28a 100644
--- a/pkgs/servers/x11/xorg/default.nix
+++ b/pkgs/servers/x11/xorg/default.nix
@@ -1743,6 +1743,9 @@ rec {
       url = http://mirror.switch.ch/ftp/mirror/X11/pub/X11R7.3/src/everything/xf86-input-evdev-1.1.2.tar.bz2;
       sha256 = "15avwy8isbqagzcdj20ngqajl22k40pssfx7vjirhrqyyq19fiwb";
     };
+    preBuild = "
+  	sed -e '/motion_history_proc/d; /history_size/d;' -i src/*.c
+    ";
     buildInputs = [pkgconfig inputproto kbproto randrproto xorgserver xproto ];
   }) // {inherit inputproto kbproto randrproto xorgserver xproto ;};
     
diff --git a/pkgs/stdenv/generic/setup-new-2.sh b/pkgs/stdenv/generic/setup-new-2.sh
index 6f6922d1af98..5e330846a4d6 100644
--- a/pkgs/stdenv/generic/setup-new-2.sh
+++ b/pkgs/stdenv/generic/setup-new-2.sh
@@ -28,17 +28,6 @@ addToSearchPath()
 	addToSearchPathWithCustomDelimiter "${PATH_DELIMITER}" "$@"
 }
 
-# Would adding -e to echo be useful? ( "\n" -> newline. useful for one liners  )
-# usage:
-#  createShScript $out/bin/yourscript \
-#  "#!/bin/sh
-#  echo Hello World"
-#  should we add ensureDir $(basename $1) ?
-createShScript(){
-  echo "$2" > "$1"
-  chmod +x "$1"
-}
-
 # Set up the initial path.
 PATH=
 for i in $NIX_GCC @initialPath@; do
diff --git a/pkgs/tools/archivers/gnutar/1.17.nix b/pkgs/tools/archivers/gnutar/1.17.nix
new file mode 100644
index 000000000000..c87b855ed63b
--- /dev/null
+++ b/pkgs/tools/archivers/gnutar/1.17.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "gnutar-1.17";
+  src = 
+	fetchurl {
+		url = mirror://gnu/tar/tar-1.17.tar.bz2;
+		sha256 = "14m49kya1swilivc2laycw3p3y3i1s3q0vkhwjan58aiv8fh5y8r";
+	};
+  patches = [./implausible.patch];
+}
diff --git a/pkgs/tools/archivers/gnutar/1.18.nix b/pkgs/tools/archivers/gnutar/1.18.nix
new file mode 100644
index 000000000000..aab315f673e3
--- /dev/null
+++ b/pkgs/tools/archivers/gnutar/1.18.nix
@@ -0,0 +1,11 @@
+{stdenv, fetchurl}:
+
+stdenv.mkDerivation {
+  name = "gnutar-1.17";
+  src = 
+	fetchurl {
+		url = mirror://gnu/tar/tar-1.18.tar.bz2;
+		sha256 = "0png2yqkw333acf55k0hjs0mcx1s0w0gkf50pa6hv3kw8bh4x524";
+	};
+  patches = [./implausible.patch ./gnulib-futimens.patch];
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 2b1480dda122..8e0ed2ff9d91 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3679,6 +3679,14 @@ rec {
     inherit (xlibs) libX11 libXext libXi libXmu;
   };
 
+  gocrFun = lib.sumArgs (import ../applications/graphics/gocr) {
+  	inherit builderDefs fetchurl stdenv;
+  };
+
+  gocr = gocrFun {
+  	version	= "0.44";
+  } null;
+
   gphoto2 = import ../applications/misc/gphoto2 {
     inherit fetchurl stdenv pkgconfig libgphoto2 libexif popt;
   };
@@ -4500,7 +4508,7 @@ rec {
 
   synaptics = import ../misc/synaptics {
     inherit fetchurl stdenv pkgconfig;
-    inherit (xlibs) libX11 libXi libXext pixman;
+    inherit (xlibs) libX11 libXi libXext pixman xf86inputevdev;
     inherit (xorg) xorgserver;
   };