--- ice-9/slib.scm.dpkg-dist	2012-03-18 20:16:21.000000000 +0100
+++ ice-9/slib.scm	2012-10-15 23:25:01.675171256 +0200
@@ -33,7 +33,24 @@
 
 
 ;; Initialize SLIB.
-(load-from-path "slib/guile.init")
+(define library-vicinity
+  (let ((library-path
+	 (or
+	  ;; Use this getenv if your implementation supports it.
+	  (and (defined? 'getenv) (getenv "SCHEME_LIBRARY_PATH"))
+	  ;; Rob Browning sent this; I'm not sure its a good idea.
+          ;; See if we can find slib/guile.init (cf. implementation-vicinity).
+          (let ((path (%search-load-path "slib/guile.init")))
+            (and path (substring path 0 (- (string-length path) 10))))
+	  ;; Use this path if your scheme does not support GETENV
+	  ;; or if SCHEME_LIBRARY_PATH is not set.
+;; Changed from /usr/lib/slib to /usr/share/slib by tb@debian.org for
+;; Debian packaging.
+;;	  "/usr/lib/slib/"
+	  "/usr/share/slib/")))
+    (lambda () library-path)))
+
+(primitive-load (in-vicinity (library-vicinity) "guile.init"))
 
 ;; SLIB redefines a few core symbols based on their default definition.
 ;; Thus, we only replace them at this point so that their previous definition
