diff --git a/AUTHORS b/AUTHORS
index 1c29754..f7d1e66 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -18,5 +18,6 @@
 - Olivier Mengué
 - Emre Berge Ergenekon
 - Eric Holmes
+- Vedang Manerikar
 
 Portions derived from other open source works are clearly marked.
diff --git a/Changes.mdown b/Changes.mdown
index 4e39369..2281f23 100644
--- a/Changes.mdown
+++ b/Changes.mdown
@@ -3,16 +3,21 @@
 Release date: **not yet**
 
 * `git flow init` now detects situations where origin already has gitflow
-  branches set up, and behaves accordingly (thanks Emre Berge Ergenekon)
+  branches set up, and behaves accordingly (thanks Emre Berge Ergenekon).
 
 * `git flow feature finish` can now be called without a feature branch
   name(prefix) argument and will finish the current branch, if on any.
 
-* Various minor bug fixes related to internal argument passing
+* `git flow feature pull` now has a `-r` flag, to support `pull --rebase`
+  semantics (thanks Vedang Manerikar).
 
-* Better support for Windows users.
+* Various minor bug fixes related to internal argument passing.
 
-* Add package installers for the Debian and Windows platforms.
+* Improved some documentation.
+
+* Better support for Windows and BSD users.
+
+* Add package installer for the Windows platform.
 
 0.4.1:
 -----
diff --git a/Makefile b/Makefile
index 764bd23..fbbfd2c 100644
--- a/Makefile
+++ b/Makefile
@@ -27,12 +27,7 @@
 # policies, either expressed or implied, of Vincent Driessen.
 #
 
-# Determine if we're inside a debian build .. 
-ifdef DEB_BUILD_ARCH
-   prefix=$(DESTDIR)/usr/
-else
-   prefix=/usr/local
-endif
+prefix=/usr/local
 
 # files that need mode 755
 EXEC_FILES=git-flow
diff --git a/README.mdown b/README.mdown
index 70d944d..c7238e6 100644
--- a/README.mdown
+++ b/README.mdown
@@ -1,5 +1,6 @@
-git-flow ![Project status](http://stillmaintained.com/nvie/gitflow.png)
+git-flow
 ========
+
 A collection of Git extensions to provide high-level repository operations
 for Vincent Driessen's [branching model](http://nvie.com/git-model "original
 blog post").
@@ -83,13 +84,15 @@
 
 To initialize a new repo with the basic branch structure, use:
   
-		git flow init
+		git flow init [-d]
   
 This will then interactively prompt you with some questions on which branches
 you would like to use as development and production branches, and how you
 would like your prefixes be named. You may simply press Return on any of
 those questions to accept the (sane) default suggestions.
 
+The ``-d`` flag will accept all defaults.
+
 
 ### Creating feature/release/hotfix/support branches
 
@@ -101,6 +104,11 @@
   
   For feature branches, the `<base>` arg must be a commit on `develop`.
 
+* To push/pull a feature branch to the remote repository, use:
+
+  		git flow feature publish <name>
+		  git flow feature pull <remote> <name>
+
 * To list/start/finish release branches, use:
   
   		git flow release
diff --git a/contrib/debian/changelog b/contrib/debian/changelog
deleted file mode 100644
index f889596..0000000
--- a/contrib/debian/changelog
+++ /dev/null
@@ -1,5 +0,0 @@
-gitflow (0.4.1) unstable; urgency=low
-
-  * Initial Debian Packaging
-
- -- Kiall Mac Innes <kiall@managedit.ie>  Mon, 25 Apr 2011 23:51:42 +0100
diff --git a/contrib/debian/compat b/contrib/debian/compat
deleted file mode 100644
index 7f8f011..0000000
--- a/contrib/debian/compat
+++ /dev/null
@@ -1 +0,0 @@
-7
diff --git a/contrib/debian/control b/contrib/debian/control
deleted file mode 100644
index d47b2b0..0000000
--- a/contrib/debian/control
+++ /dev/null
@@ -1,14 +0,0 @@
-Source: gitflow
-Section: vcs
-Priority: optional
-Maintainer: Kiall Mac Innes <kiall@managedit.ie>
-Build-Depends: debhelper (>= 7.0.50~), git
-Standards-Version: 3.9.1
-Homepage: http://nvie.com/posts/a-successful-git-branching-model/
-Vcs-Git: https://github.com/nvie/gitflow.git
-Vcs-Browser: https://github.com/nvie/gitflow
-
-Package: gitflow
-Architecture: all
-Depends: ${shlibs:Depends}, ${misc:Depends}, git
-Description: Git extensions to provide high-level repository operations for Vincent Driessen's branching model
diff --git a/contrib/debian/copyright b/contrib/debian/copyright
deleted file mode 100644
index a08359a..0000000
--- a/contrib/debian/copyright
+++ /dev/null
@@ -1,40 +0,0 @@
-Format: http://dep.debian.net/deps/dep5
-Upstream-Name: gitflow
-Source: <url://example.com>
-
-Files: *
-Copyright: <years> <put author's name and email here>
-           <years> <likewise for another author>
-License: BSD-3-Clause
-
-Files: debian/*
-Copyright: 2011 Kiall <kiall@managedit.ie>
-License: BSD-3-Clause
-
-License: BSD-3-Clause
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
- 3. Neither the name of the University nor the names of its contributors
-    may be used to endorse or promote products derived from this software
-    without specific prior written permission.
- .
- THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
-# Please also look if there are files or directories which have a
-# different copyright/license attached and list them here.
diff --git a/contrib/debian/docs b/contrib/debian/docs
deleted file mode 100644
index ceda507..0000000
--- a/contrib/debian/docs
+++ /dev/null
@@ -1 +0,0 @@
-README.mdown
diff --git a/contrib/debian/rules b/contrib/debian/rules
deleted file mode 100755
index 79092d6..0000000
--- a/contrib/debian/rules
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/usr/bin/make -f
-# -*- makefile -*-
-# Sample debian/rules that uses debhelper.
-# This file was originally written by Joey Hess and Craig Small.
-# As a special exception, when this file is copied by dh-make into a
-# dh-make output file, you may use that output file without restriction.
-# This special exception was added by Craig Small in version 0.37 of dh-make.
-
-# Uncomment this to turn on verbose mode.
-#export DH_VERBOSE=1
-
-override_dh_testdir:
-	dh_testdir
-	git submodule init && git submodule update
-%:
-	dh $@ 
diff --git a/git-flow b/git-flow
index a03ba1f..93e9f0f 100755
--- a/git-flow
+++ b/git-flow
@@ -37,6 +37,9 @@
 # policies, either expressed or implied, of Vincent Driessen.
 #
 
+# set this to workaround expr problems in shFlags on freebsd
+if uname -s | egrep -iq 'bsd'; then export EXPR_COMPAT=1; fi
+
 # enable debug mode
 if [ "$DEBUG" = "yes" ]; then
 	set -x
diff --git a/git-flow-feature b/git-flow-feature
index d653ec1..39c1d19 100644
--- a/git-flow-feature
+++ b/git-flow-feature
@@ -9,17 +9,17 @@
 #    http://github.com/nvie/gitflow
 #
 # Copyright 2010 Vincent Driessen. All rights reserved.
-# 
+#
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are met:
-# 
+#
 #    1. Redistributions of source code must retain the above copyright notice,
 #       this list of conditions and the following disclaimer.
-# 
+#
 #    2. Redistributions in binary form must reproduce the above copyright
 #       notice, this list of conditions and the following disclaimer in the
 #       documentation and/or other materials provided with the distribution.
-# 
+#
 # THIS SOFTWARE IS PROVIDED BY VINCENT DRIESSEN ``AS IS'' AND ANY EXPRESS OR
 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
@@ -30,7 +30,7 @@
 # OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# 
+#
 # The views and conclusions contained in the software and documentation are
 # those of the authors and should not be interpreted as representing official
 # policies, either expressed or implied, of Vincent Driessen.
@@ -244,7 +244,7 @@
 		# TODO: detect that we're working on the correct branch here!
 		# The user need not necessarily have given the same $NAME twice here
 		# (although he/she should).
-		# 
+		#
 
 		# TODO: git_is_clean_working_tree() should provide an alternative
 		# exit code for "unmerged changes in working tree", which we should
@@ -270,7 +270,7 @@
 			echo "Merge conflicts not resolved yet, use:"
 			echo "    git mergetool"
 			echo "    git commit"
-			echo 
+			echo
 			echo "You can then complete the finish by running it again:"
 			echo "    git flow feature finish $NAME"
 			echo
@@ -324,7 +324,7 @@
 		echo "There were merge conflicts. To resolve the merge conflict manually, use:"
 		echo "    git mergetool"
 		echo "    git commit"
-		echo 
+		echo
 		echo "You can then complete the finish by running it again:"
 		echo "    git flow feature finish $NAME"
 		echo
@@ -344,8 +344,8 @@
 	if flag fetch; then
 		git push "$ORIGIN" ":refs/heads/$BRANCH"
 	fi
-	
-	
+
+
 	if noflag keep; then
 		if flag force_delete; then
 			git branch -D "$BRANCH"
@@ -475,7 +475,7 @@
 
 cmd_pull() {
 	#DEFINE_string prefix false 'alternative remote feature branch name prefix' p
-    DEFINE_boolean rebase false "pull with rebase" r
+	DEFINE_boolean rebase false "pull with rebase" r
 	parse_remote_name "$@"
 
 	if [ -z "$REMOTE" ]; then
@@ -501,14 +501,14 @@
 
 		# we already have a local branch called like this, so simply pull the
 		# remote changes in
-        if flag rebase; then
-		    if ! git pull --rebase -q "$REMOTE" "$BRANCH"; then
-			    warn "Pull was aborted. There might be conflicts during rebase or '$REMOTE' might be inaccessible."
-			    exit 1
-		    fi
-        else
-           git pull -q "$REMOTE" "$BRANCH" || die "Failed to pull from remote '$REMOTE'."
-	    fi
+		if flag rebase; then
+			if ! git pull --rebase -q "$REMOTE" "$BRANCH"; then
+				warn "Pull was aborted. There might be conflicts during rebase or '$REMOTE' might be inaccessible."
+				exit 1
+			fi
+		else
+			it pull -q "$REMOTE" "$BRANCH" || die "Failed to pull from remote '$REMOTE'."
+		fi
 
 		echo "Pulled $REMOTE's changes into $BRANCH."
 	else
diff --git a/git-flow-hotfix b/git-flow-hotfix
index 0a77272..b355f30 100644
--- a/git-flow-hotfix
+++ b/git-flow-hotfix
@@ -269,7 +269,7 @@
 			flag sign && opts="$opts -s"
 			[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
 			[ "$FLAGS_message" != "" ] && opts="$opts -m '$FLAGS_message'"
-			git tag $opts "$VERSION_PREFIX$VERSION" || \
+			eval git tag $opts "$VERSION_PREFIX$VERSION" || \
 			die "Tagging failed. Please run finish again to retry."
 		fi
 	fi
diff --git a/git-flow-release b/git-flow-release
index 08f595b..bb39d52 100644
--- a/git-flow-release
+++ b/git-flow-release
@@ -239,7 +239,7 @@
 			flag sign && opts="$opts -s"
 			[ "$FLAGS_signingkey" != "" ] && opts="$opts -u '$FLAGS_signingkey'"
 			[ "$FLAGS_message" != "" ] && opts="$opts -m '$FLAGS_message'"
-			git tag $opts "$tagname" || \
+			eval git tag $opts "$tagname" || \
 			die "Tagging failed. Please run finish again to retry."
 		fi
 	fi
diff --git a/gitflow-common b/gitflow-common
index fb515de..4834cf1 100644
--- a/gitflow-common
+++ b/gitflow-common
@@ -45,7 +45,7 @@
 die() { warn "$@"; exit 1; }
 
 escape() {
-	echo "$1" | sed 's/\([\.\+\$\*]\)/\\\1/g'
+	echo "$1" | sed 's/\([\.\$\*]\)/\\\1/g'
 }
 
 # set logic
