diff --git a/CMakeLists.txt b/CMakeLists.txt
index a5cfe4bc5922f3b95888ebab155e503fa56ac1ef..bfde1db55d0e31d50df3884310d22c4bf368dbd8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,7 +7,7 @@ list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
 set(LLVM_ENABLE_PLUGINS ON)
 set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin)
 set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib)
-set(LLVM_PLUGIN_EXT "so")
+set(LLVM_PLUGIN_EXT ".so")
 
 include(AddLLVM)
 
diff --git a/README.md b/README.md
index 87accfdf4d2ebaf5671f89afbd1c58a5b5f84d8f..47d7c17586df58780342d5e477bc4173f223c7a6 100644
--- a/README.md
+++ b/README.md
@@ -14,4 +14,4 @@ Build:
 Run:
 
     $ clang -emit-llvm -c -o something.bc something.c
-    $ opt -load build/skeleton/SkeletonPass.* -skeleton something.bc
+    $ opt -load build/lib/SkeletonPass.* -skeleton something.bc
diff --git a/skeleton/CMakeLists.txt b/skeleton/CMakeLists.txt
index 6f8941ce985ef2a9ab4705379d367ea7fbc342c3..a2feb14eca91e6b246f65f7707cc2c124cd0c6de 100644
--- a/skeleton/CMakeLists.txt
+++ b/skeleton/CMakeLists.txt
@@ -3,4 +3,7 @@ add_llvm_loadable_module(SkeletonPass
     Skeleton.cpp
 )
 
-set_target_properties(SkeletonPass PROPERTIES COMPILE_FLAGS "-std=c++11" )
+set_target_properties(SkeletonPass PROPERTIES
+    COMPILE_FLAGS "-std=c++11 -fno-rtti"
+    LINK_FLAGS "-undefined dynamic_lookup"
+)
diff --git a/skeleton/Skeleton.cpp b/skeleton/Skeleton.cpp
index 300e62c33e99993db571d699890153bf7923260c..02fde997287f0c80edb7342e68c13ec47d4c9545 100644
--- a/skeleton/Skeleton.cpp
+++ b/skeleton/Skeleton.cpp
@@ -1,5 +1,5 @@
 #include "llvm/Pass.h"
-#include "llvm/Function.h"
+#include "llvm/IR/Function.h"
 #include "llvm/Support/raw_ostream.h"
 using namespace llvm;