diff --git a/modules/base/pymod/wrap_base.cc b/modules/base/pymod/wrap_base.cc
index 1ba0b15718baec2fbf014e9301583d052a3d2205..93e9b630a41350584470f04469197a719aa585a8 100644
--- a/modules/base/pymod/wrap_base.cc
+++ b/modules/base/pymod/wrap_base.cc
@@ -50,6 +50,7 @@ BOOST_PYTHON_MODULE(_ost_base)
   scope().attr("VERSION_MAJOR")=OST_VERSION_MAJOR;
   scope().attr("VERSION_MINOR")=OST_VERSION_MINOR;  
   scope().attr("VERSION_PATCH")=OST_VERSION_PATCH;
+  scope().attr("WITH_NUMPY")= OST_NUMPY_SUPPORT_ENABLED;
   export_Logger();
   export_Range();
   export_Units();
diff --git a/modules/gfx/tests/test_gfx.py b/modules/gfx/tests/test_gfx.py
index ff6e462e7f73f9478073618398b3700149c156a2..f6c5f8f6e47055d2e5576aaf61e1674b464de8b2 100644
--- a/modules/gfx/tests/test_gfx.py
+++ b/modules/gfx/tests/test_gfx.py
@@ -9,11 +9,15 @@ import ost.mol as mol
 import ost.gfx as gfx
 import ost.geom as geom
 
-has_numpy=True
-import numpy
-if not has_numpy:
+if ost.WITH_NUMPY:
+  has_numpy=True
+  try:
+    import numpy
+  except ImportError, e:
+    has_numpy=False
+else:
   has_numpy=False
- 
+
 def col_delta(c1,c2):
   return geom.Distance(geom.Vec3(c1[0],c1[1],c1[2]),geom.Vec3(c2[0],c2[1],c2[2]))
 
diff --git a/modules/mol/base/tests/test_numpy.py b/modules/mol/base/tests/test_numpy.py
index 14496c0c0ef2d3cb3632ebbb620890d4a9e126a0..217ed89dd7adb6380b6fea22719e49f310b2c2cb 100644
--- a/modules/mol/base/tests/test_numpy.py
+++ b/modules/mol/base/tests/test_numpy.py
@@ -1,17 +1,25 @@
 import unittest
-from ost import *
+if __name__== '__main__':
+  import sys
+  sys.path.insert(0,"../../../../stage/lib64/openstructure/")
+  sys.path.insert(0,"../../../../stage/lib/openstructure/")
+  
+import ost
 
-has_numpy=True
-try:
-  import numpy
-except ImportError:
+if ost.WITH_NUMPY:
+  has_numpy=True
+  try:
+    import numpy
+  except ImportError, e:
+    has_numpy=False
+else:
   has_numpy=False
 
 def v2v(v):
-  return geom.Vec3(float(v[0]),float(v[1]),float(v[2]))
+  return ost.geom.Vec3(float(v[0]),float(v[1]),float(v[2]))
 
 def dd(v1,v2):
-  return geom.Distance(v1,v2)<1e-8
+  return ost.geom.Distance(v1,v2)<1e-8
 
 class TestNumpy(unittest.TestCase):
   def setUp(self):
@@ -20,46 +28,46 @@ class TestNumpy(unittest.TestCase):
   def test_(self):
     if not has_numpy:
       return
-    entity=mol.CreateEntity()
+    entity=ost.mol.CreateEntity()
     ed=entity.EditXCS()
     ch=ed.InsertChain("X")
     re=ed.AppendResidue(ch,"ALA")
-    a0=ed.InsertAtom(re,"A",geom.Vec3(0,0,0))
+    a0=ed.InsertAtom(re,"A",ost.geom.Vec3(0,0,0))
     self.assertEqual(a0.GetIndex(),0)
-    a1=ed.InsertAtom(re,"B",geom.Vec3(1,0,0))
+    a1=ed.InsertAtom(re,"B",ost.geom.Vec3(1,0,0))
     self.assertEqual(a1.GetIndex(),1)
-    a2=ed.InsertAtom(re,"C",geom.Vec3(2,0,0))
+    a2=ed.InsertAtom(re,"C",ost.geom.Vec3(2,0,0))
     self.assertEqual(a2.GetIndex(),2)
-    a3=ed.InsertAtom(re,"D",geom.Vec3(3,0,0))
+    a3=ed.InsertAtom(re,"D",ost.geom.Vec3(3,0,0))
     self.assertEqual(a3.GetIndex(),3)
 
-    self.assertTrue(dd(a0.pos,geom.Vec3(0,0,0)))
-    self.assertTrue(dd(a1.pos,geom.Vec3(1,0,0)))
-    self.assertTrue(dd(a2.pos,geom.Vec3(2,0,0)))
-    self.assertTrue(dd(a3.pos,geom.Vec3(3,0,0)))
+    self.assertTrue(dd(a0.pos,ost.geom.Vec3(0,0,0)))
+    self.assertTrue(dd(a1.pos,ost.geom.Vec3(1,0,0)))
+    self.assertTrue(dd(a2.pos,ost.geom.Vec3(2,0,0)))
+    self.assertTrue(dd(a3.pos,ost.geom.Vec3(3,0,0)))
 
     ed.SetAtomTransformedPos(entity.GetAtomList(),
                              numpy.array([[0,1,0],[0,2,0],[0,3,0],[0,4,0]], dtype=numpy.float32))
 
-    self.assertTrue(dd(a0.pos,geom.Vec3(0,1,0)))
-    self.assertTrue(dd(a1.pos,geom.Vec3(0,2,0)))
-    self.assertTrue(dd(a2.pos,geom.Vec3(0,3,0)))
-    self.assertTrue(dd(a3.pos,geom.Vec3(0,4,0)))
+    self.assertTrue(dd(a0.pos,ost.geom.Vec3(0,1,0)))
+    self.assertTrue(dd(a1.pos,ost.geom.Vec3(0,2,0)))
+    self.assertTrue(dd(a2.pos,ost.geom.Vec3(0,3,0)))
+    self.assertTrue(dd(a3.pos,ost.geom.Vec3(0,4,0)))
 
     na=entity.positions
 
-    self.assertTrue(dd(v2v(na[0]),geom.Vec3(0,1,0)))
-    self.assertTrue(dd(v2v(na[1]),geom.Vec3(0,2,0)))
-    self.assertTrue(dd(v2v(na[2]),geom.Vec3(0,3,0)))
-    self.assertTrue(dd(v2v(na[3]),geom.Vec3(0,4,0)))
+    self.assertTrue(dd(v2v(na[0]),ost.geom.Vec3(0,1,0)))
+    self.assertTrue(dd(v2v(na[1]),ost.geom.Vec3(0,2,0)))
+    self.assertTrue(dd(v2v(na[2]),ost.geom.Vec3(0,3,0)))
+    self.assertTrue(dd(v2v(na[3]),ost.geom.Vec3(0,4,0)))
 
     ed.SetAtomTransformedPos([3,99,2],
                              numpy.array([[0,0,-3],[-1,-1,-1],[0,0,-2]], dtype=numpy.float32))
 
-    self.assertTrue(dd(a0.pos,geom.Vec3(0,1,0)))
-    self.assertTrue(dd(a1.pos,geom.Vec3(0,2,0)))
-    self.assertTrue(dd(a2.pos,geom.Vec3(0,0,-2)))
-    self.assertTrue(dd(a3.pos,geom.Vec3(0,0,-3)))
+    self.assertTrue(dd(a0.pos,ost.geom.Vec3(0,1,0)))
+    self.assertTrue(dd(a1.pos,ost.geom.Vec3(0,2,0)))
+    self.assertTrue(dd(a2.pos,ost.geom.Vec3(0,0,-2)))
+    self.assertTrue(dd(a3.pos,ost.geom.Vec3(0,0,-3)))
 
 if __name__== '__main__':
     unittest.main()