diff --git a/INSTALL b/INSTALL
index b91f3a6..0ad7c21 100644
--- a/INSTALL
+++ b/INSTALL
@@ -22,7 +22,13 @@ The bzip2 and bzcat binaries are used to compress game records if
 present, but FB can live without them.
 
 
+===============================================================================
+
                 Installation instructions
+             to perform a system-wide install
+
+E.g. if you want to manually install on your system, or perform
+packagement of Frozen-Bubble.
 
 
 [*] First, build Frozen-Bubble with GNU make; no arguments are
@@ -87,3 +93,33 @@ this should not create problems.
 Example:
 
 $ make install DESTDIR=/tmp/fb-installroot PREFIX=/usr
+
+
+===============================================================================
+
+                    Installation instructions
+             to install into a non standard directory
+
+E.g. if you want to install in your homedir, /tmp, or if you want
+to perform a parallel install of a more recent/development
+version of Frozen-Bubble
+
+
+You need to specify the non-standard directory in the PREFIX
+parameter; to make execution easier, you should also specify the
+library directory where Perl modules will be installed, with
+INSTALLSITELIB.
+
+Example:
+
+$ make PREFIX=/tmp/frozen-bubble INSTALLSITELIB=/tmp/frozen-bubble/lib
+
+In the installation step, use the same PREFIX again:
+
+$ make install PREFIX=/tmp/frozen-bubble
+
+That's it; but then, when executing Frozen-Bubble, you have to
+tell Perl where to find its modules, and where to find the *.mo
+translation files:
+
+$ PERL5LIB=/tmp/frozen-bubble/lib GETTEXT_DIRNAME=/tmp/frozen-bubble/share/locale /tmp/frozen-bubble/bin/frozen-bubble
diff --git a/c_stuff/Makefile b/c_stuff/Makefile
index fa9df7d..524a870 100644
--- a/c_stuff/Makefile
+++ b/c_stuff/Makefile
@@ -1,13 +1,57 @@
 include ../settings.mk
 
-.PHONY: clean
+.PHONY: clean install
 
-fb_c_stuff: %: %.xs
-	test -e Makefile_c || perl Makefile.PL INSTALLDIRS=$(INSTALLDIRS)
+all: fb_c_stuff
+
+# there has GOT to be a better way
+ifdef PREFIX
+    PMO_PREFIX=PREFIX=$(PREFIX)
+else
+   PMO_PREFIX=
+endif
+ifdef INSTALLPRIVLIB
+    PMO_INSTALLPRIVLIB=INSTALLPRIVLIB=$(INSTALLPRIVLIB)
+else
+   PMO_INSTALLPRIVLIB=
+endif
+ifdef INSTALLSCRIPT
+    PMO_INSTALLSCRIPT=INSTALLSCRIPT=$(INSTALLSCRIPT)
+else
+   PMO_INSTALLSCRIPT=
+endif
+ifdef INSTALLSITELIB
+    PMO_INSTALLSITELIB=INSTALLSITELIB=$(INSTALLSITELIB)
+else
+   PMO_INSTALLSITELIB=
+endif
+ifdef INSTALLBIN
+    PMO_INSTALLBIN=INSTALLBIN=$(INSTALLBIN)
+else
+   PMO_INSTALLBIN=
+endif
+ifdef INSTALLMAN1DIR
+    PMO_INSTALLMAN1DIR=INSTALLMAN1DIR=$(INSTALLMAN1DIR)
+else
+   PMO_INSTALLMAN1DIR=
+endif
+ifdef INSTALLMAN3DIR
+    PMO_INSTALLMAN3DIR=INSTALLMAN3DIR=$(INSTALLMAN3DIR)
+else
+   PMO_INSTALLMAN3DIR=
+endif
+
+PERL_MAKE_OPTS = $(PMO_PREFIX) $(PMO_INSTALLPRIVLIB) $(PMO_INSTALLSCRIPT) \
+    $(PMO_INSTALLSITELIB) $(PMO_INSTALLBIN) $(PMO_INSTALLMAN1DIR) \
+    $(PMO_INSTALLMAN3DIR)
+
+Makefile_c: Makefile.PL
+	perl Makefile.PL $(PERL_MAKE_OPTS)
+
+fb_c_stuff: %: %.xs Makefile_c
 	$(MAKE) -f Makefile_c
 
 install:
-	test -e Makefile_c || perl Makefile.PL INSTALLDIRS=$(INSTALLDIRS)
 	$(MAKE) -f Makefile_c install
 
 clean:
diff --git a/frozen-bubble b/frozen-bubble
index 65b7817..9d6c639 100755
--- a/frozen-bubble
+++ b/frozen-bubble
@@ -105,6 +105,7 @@ eval(cat_($hiscorefiles{levels} = "$ENV{HOME}/.fbhighscores"));
 eval(cat_($hiscorefiles{mptrain} = "$ENV{HOME}/.fbhighscores-mptrain"));
 
 textdomain("frozen-bubble");
+$ENV{GETTEXT_DIRNAME} and bindtextdomain("frozen-bubble", $ENV{GETTEXT_DIRNAME});
 bind_textdomain_codeset("frozen-bubble", "UTF-8");  #- we're going to use SDL_Pango which uses UTF-8 input
 our $is_rtl = $ENV{LANGUAGE} =~ /^fa/;
 

