diff --git a/debian/changelog b/debian/changelog
index e049cdb..841104b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,27 @@
+freeglut (2.6.0-3) unstable; urgency=low
+
+  [ Anton Gladky ]
+  * [14a5bb4] Use compat-level 9.
+  * [9adaee5] Implement multiarch. (Closes: #677735)
+  * [3b4bc1a] Fix path to dbg-libraries. (Closes: #331244)
+  * [a515c32] Set DM-Upload-Allowed to yes.
+  * [3439f5b] Disable *fghJoystickWalkUSBdev on kfreeBSD* systems. 
+              Prevents FTBFS on those platforms. (Closes: #678571)
+
+  [ Michael Gilbert ]
+  * [68e563b] Automatically handle build flags via debhelper 9.
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Sat, 30 Jun 2012 16:45:48 -0400
+
+freeglut (2.6.0-2) unstable; urgency=low
+
+  * [58daa57] Simplify debian/rules, use dh 8.
+  * [994c8be] Add myself as maintainer. (Closes: #674870)
+  * [8d9ff8a] Move git-repository to collab-maint.
+  * [1949549] Fix hardcoded list of kFreeBSD architectures. (Closes: #634674)
+
+ -- Anton Gladky <gladky.anton@gmail.com>  Tue, 19 Jun 2012 20:42:58 +0200
+
 freeglut (2.6.0-1.1) unstable; urgency=low
 
   * Non-maintainer upload.
diff --git a/debian/compat b/debian/compat
index 7f8f011..ec63514 100644
--- a/debian/compat
+++ b/debian/compat
@@ -1 +1 @@
-7
+9
diff --git a/debian/control b/debian/control
index b23856a..3fab2d5 100644
--- a/debian/control
+++ b/debian/control
@@ -1,17 +1,23 @@
 Source: freeglut
 Section: graphics
 Priority: optional
-Maintainer: Bradley Smith <bradsmith@debian.org>
-Build-Depends: debhelper (>= 7), libx11-dev, libxt-dev, libxext-dev, libxi-dev, libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, libusbhid-dev [kfreebsd-i386 kfreebsd-amd64], quilt, autotools-dev, autoconf, automake, libtool
-Standards-Version: 3.8.4
+Maintainer: Anton Gladky <gladky.anton@gmail.com>
+DM-Upload-Allowed: yes
+Build-Depends: debhelper (>= 9), libx11-dev, libxt-dev, libxext-dev, libxi-dev, 
+  libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, 
+  libusbhid-dev [kfreebsd-any], quilt, autotools-dev, 
+  autoconf, automake, libtool
+Standards-Version: 3.9.3
 Homepage: http://freeglut.sourceforge.net/
-Vcs-Git: http://git.brad-smith.co.uk/git/debian/pkg-freeglut.git
-Vcs-Browser: http://git.brad-smith.co.uk/?p=debian/pkg-freeglut.git
+Vcs-Git: git://git.debian.org/collab-maint/freeglut.git
+Vcs-Browser: http://git.debian.org/?p=collab-maint/freeglut.git
 
 Package: freeglut3
 Section: libs
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
 Description: OpenGL Utility Toolkit
  GLUT is a window system independent toolkit for writing OpenGL programs,
  implementing a simple windowing API, which makes learning about and
@@ -25,7 +31,10 @@ Description: OpenGL Utility Toolkit
 Package: freeglut3-dev
 Section: libdevel
 Architecture: any
-Depends: freeglut3 (= ${binary:Version}), libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, libxt-dev, libxext-dev, ${misc:Depends}
+Depends: freeglut3 (= ${binary:Version}), libgl1-mesa-dev | libgl-dev, 
+  libglu1-mesa-dev | libglu-dev, libxt-dev, libxext-dev, ${misc:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
 Description: OpenGL Utility Toolkit development files
  GLUT is a window system independent toolkit for writing OpenGL programs.
  It implements a simple windowing API, which makes learning about and
@@ -43,7 +52,9 @@ Package: freeglut3-dbg
 Section: debug
 Priority: extra
 Architecture: any
-Depends: freeglut3 (= ${binary:Version}), ${misc:Depends}
+Depends: freeglut3 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
 Description: OpenGL Utility Toolkit debugging information
  GLUT is a window system independent toolkit for writing OpenGL programs.
  It implements a simple windowing API, which makes learning about and
diff --git a/debian/freeglut3-dbg.install b/debian/freeglut3-dbg.install
new file mode 100644
index 0000000..3484ddd
--- /dev/null
+++ b/debian/freeglut3-dbg.install
@@ -0,0 +1 @@
+usr/lib/*/debug/*
diff --git a/debian/freeglut3-dev.install b/debian/freeglut3-dev.install
index b6b7471..f6e54ab 100644
--- a/debian/freeglut3-dev.install
+++ b/debian/freeglut3-dev.install
@@ -2,5 +2,5 @@ usr/include/GL/glut.h
 usr/include/GL/freeglut.h
 usr/include/GL/freeglut_std.h
 usr/include/GL/freeglut_ext.h
-usr/lib/libglut.a
-usr/lib/libglut.so
+usr/lib/*/libglut.a
+usr/lib/*/libglut.so
diff --git a/debian/freeglut3.install b/debian/freeglut3.install
index d030bfe..0e508b0 100644
--- a/debian/freeglut3.install
+++ b/debian/freeglut3.install
@@ -1,2 +1,2 @@
-usr/lib/libglut.so.3.9.0
-usr/lib/libglut.so.3
+usr/lib/*/libglut.so.3.9.0
+usr/lib/*/libglut.so.3
diff --git a/debian/patches/06_fix_FTBFS_kFreeBSD.patch b/debian/patches/06_fix_FTBFS_kFreeBSD.patch
new file mode 100644
index 0000000..c2fde51
--- /dev/null
+++ b/debian/patches/06_fix_FTBFS_kFreeBSD.patch
@@ -0,0 +1,36 @@
+Description: disable *fghJoystickWalkUSBdev on kfreeBSD* systems. Prevents FTBFS
+Author: Anton Gladky
+Applied-Upstream: https://svn.redports.org/gahr/graphics/freeglut/freeglut-2.8.0.diff
+Last-Update: 2012-06-22
+
+--- a/src/freeglut_joystick.c
++++ b/src/freeglut_joystick.c
+@@ -151,7 +151,11 @@
+ #                include <libusbhid.h>
+ #            endif
+ #        endif
+-#        include <legacy/dev/usb/usb.h>
++#        if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__))
++#            include <legacy/dev/usb/usb.h>
++#        else
++#            include <dev/usb/usb_ioctl.h>
++#        endif
+ #        include <dev/usb/usbhid.h>
+ 
+ /* Compatibility with older usb.h revisions */
+@@ -198,6 +202,7 @@
+  */
+ static char *fghJoystickWalkUSBdev(int f, char *dev, char *out, int outlen)
+ {
++# if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__))  
+   struct usb_device_info di;
+   int i, a;
+   char *cp;
+@@ -219,6 +224,7 @@
+         return out;
+       }
+   }
++# endif
+   return NULL;
+ }
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 2f99a6b..8e9c248 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -2,3 +2,4 @@
 03_fix_hurd.diff
 04_ld_no_add_needed.diff
 05_gold.diff
+06_fix_FTBFS_kFreeBSD.patch
diff --git a/debian/rules b/debian/rules
index e1848fa..8d64a4b 100755
--- a/debian/rules
+++ b/debian/rules
@@ -1,75 +1,26 @@
 #!/usr/bin/make -f
 
-include /usr/share/quilt/quilt.make
+%:
+	dh $@ --parallel
 
 DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 
-CFLAGS = -Wall -g
+export DEB_BUILD_MAINT_OPTIONS := hardening=+all
 
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-	CFLAGS += -O0
-else
-	CFLAGS += -O2
-endif
+extra_flags = \
+	--host="$(DEB_HOST_GNU_TYPE)" \
+	--build="$(DEB_BUILD_GNU_TYPE)" \
+	--prefix="/usr" \
+	--mandir="/usr/share/man" \
+	--infodir="/usr/share/info" \
 
-configure: configure-stamp
-configure-stamp: $(QUILT_STAMPFN)
-	dh_testdir
+override_dh_auto_configure:
 	autoreconf -i
-	CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) \
-		--build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
-		--mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info
-	touch $@
+	dh_auto_configure -- $(extra_flags)
 
-build: build-stamp
-build-stamp: configure
-	dh_testdir
-	$(MAKE)
-ifeq ($(DEB_HOST_GNU_TYPE), $(DEB_BUILD_GNU_TYPE))
-	$(MAKE) check
-endif
-	touch $@
-
-clean: unpatch
-	dh_testdir
-	dh_testroot
-	rm -f configure-stamp build-stamp
-	[ ! -f Makefile ] || $(MAKE) distclean
-	find $(CURDIR) -name "Makefile.in" | xargs rm -f
-	rm -f config.sub config.guess configure
-	rm -rf autom4te.cache config.h.in* aclocal.m4 ltmain.sh
-	dh_clean
-
-install: build
-	dh_testdir
-	dh_testroot
-	dh_prep
-	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
-	rm -f $(CURDIR)/debian/tmp/usr/lib/libglut.la
-
-binary-indep: build install
-
-binary-arch: build install
-	dh_testdir
-	dh_testroot
-	dh_movefiles
-	dh_installchangelogs ChangeLog
-	dh_installdocs
-	dh_installexamples
-	dh_install --fail-missing
-	dh_installman
-	dh_link
-	dh_strip --dbg-package=freeglut3-dbg
-	dh_compress
-	dh_fixperms
-	dh_makeshlibs
-	dh_installdeb
-	dh_shlibdeps
-	dh_gencontrol
-	dh_md5sums
-	dh_builddeb
-
-binary: binary-indep binary-arch
-
-.PHONY: build clean binary-indep binary-arch binary install configure
+override_dh_auto_install-arch:
+	dh_auto_install -a -- DESTDIR=$(CURDIR)/debian/tmp
+	mkdir $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/debug/
+	cp $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libglut.so.3.9.0 $(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/debug/
+	find . -name '*.la' -print0 | xargs -0 rm -f
