diff --git a/SConstruct b/SConstruct
index 80d9ff6..cab88c6 100644
--- a/SConstruct
+++ b/SConstruct
@@ -199,6 +199,9 @@ env.Append(CXXFLAGS=extra_cflags)
 if GetOS() != 'Darwin':
     env.Append(LINKFLAGS=' -Wl,-soname=libsunpinyin.so.%d' % abi_major)
 
+if GetOS() == 'Darwin':
+    env.Append(LINKFLAGS=' -Wl,-install_name "%s/libsunpinyin-%d.%d.dylib"' % (libdir, abi_major, abi_minor))
+
 if GetOption('rpath') is not None and GetOS() != 'Darwin':
     env.Append(LINKFLAGS=' -Wl,-R -Wl,%s' % GetOption('rpath'))
 
diff --git a/wrapper/xim/SConstruct b/wrapper/xim/SConstruct
index 495871d..7f2d4d6 100644
--- a/wrapper/xim/SConstruct
+++ b/wrapper/xim/SConstruct
@@ -77,7 +77,7 @@ extra_cflags += ' -DSUNPINYIN_XIM_SETTING_DIR=\\"%s\\"' % data_dir
 
 env.Append(CFLAGS=extra_cflags)
 env.Append(CXXFLAGS=extra_cflags)
-env.Append(LINKFLAGS=' -export-dynamic')
+#env.Append(LINKFLAGS=' -export-dynamic')
 
 # set rpath
 if GetOption('rpath') is not None:
