--- src/com/onionnetworks/fec/Native8Code.java	2009-08-21 02:37:00.515004583 +0200
+++ src/com/onionnetworks/fec/Native8Code.java.new	2009-08-21 02:37:57.829254678 +0200
@@ -3,6 +3,7 @@
 //import java.security.AccessController;
 //import sun.security.action.*;
 import com.onionnetworks.util.*;
+import java.io.File;
 
 /**
  * This class is the frontend for the JNI wrapper for the C implementation of
@@ -21,15 +22,10 @@
     final private long code;
 
     static {
-        String path = NativeDeployer.getLibraryPath
-            (Native8Code.class.getClassLoader(),"fec8");
-        if (path != null) {
-            System.load(path);
+       File path = new File("/usr/lib/libfec8.so");
+       System.out.println("Loading FEC lib ["+path.getAbsolutePath()+']');
+       System.load(path.getAbsolutePath());
             initFEC();
-        } else {
-            System.out.println("Unable to find native library for fec8 for platform "+NativeDeployer.OS_ARCH);
-            System.out.println(path);
-        }
     }
 
     public Native8Code(int k, int n) {
