diff --git a/docs/changelog.rst b/docs/changelog.rst
index 4eb97f7ff45096774f4ec03b3630dd914fcae7d4..f0d101f3d97d80d4b5585cf750b9ddeeb737c9ac 100644
--- a/docs/changelog.rst
+++ b/docs/changelog.rst
@@ -1,6 +1,14 @@
 Changelog
 *********
 
+Upcoming Version
+----------------
+
+Target is to work with the next version of rocksdb.
+
+* Fixed `issue 3 <https://github.com/stephan-hof/pyrocksdb/pull/3>`_.
+  Which fixed the change of prefix_extractor from raw-pointer to smart-pointer
+
 Version 0.1
 -----------
 
diff --git a/docs/installation.rst b/docs/installation.rst
index 1d9ae6f6849f519aa05a5820f00f90707ee3d0e3..443d793e4214e56de9282800d17c58c65a4e9eb6 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -13,8 +13,6 @@ For more details consider https://github.com/facebook/rocksdb/blob/master/INSTAL
     $ apt-get install libsnappy-dev zlib1g-dev libbz2-dev libgflags-dev
     $ git clone https://github.com/facebook/rocksdb.git
     $ cd rocksdb
-    $ # It is tested with this version
-    $ git checkout 2.7.fb
     $ make librocksdb.so
 
 If you do not want to call ``make install`` export the following enviroment
@@ -34,4 +32,4 @@ Building pyrocksdb
     $ cd pyrocks_test
     $ . bin/active
     $ pip install "Cython>=0.20"
-    $ pip install git+git://github.com/stephan-hof/pyrocksdb.git@v0.1
+    $ pip install git+git://github.com/stephan-hof/pyrocksdb.git
diff --git a/rocksdb/_rocksdb.pyx b/rocksdb/_rocksdb.pyx
index e8b79c0d5ce01482dc7681292a780d2ca85783ec..41aafc44b75c04c5090eb8527f970d0f2df4792f 100644
--- a/rocksdb/_rocksdb.pyx
+++ b/rocksdb/_rocksdb.pyx
@@ -462,34 +462,33 @@ LRUCache = PyLRUCache
 ### Here comes the stuff for SliceTransform
 @cython.internal
 cdef class PySliceTransform(object):
-    cdef slice_transform.SliceTransformWrapper* transfomer
+    cdef shared_ptr[slice_transform.SliceTransform] transfomer
     cdef object ob
 
     def __cinit__(self, object ob):
-        self.transfomer = NULL
         if not isinstance(ob, ISliceTransform):
             raise TypeError("%s is not of type %s" % (ob, ISliceTransform))
 
         self.ob = ob
-        self.transfomer = new slice_transform.SliceTransformWrapper(
-                bytes_to_string(ob.name()),
-                <void*>ob,
-                slice_transform_callback,
-                slice_in_domain_callback,
-                slice_in_range_callback)
-
-    def __dealloc__(self):
-        if not self.transfomer == NULL:
-            del self.transfomer
+        self.transfomer.reset(
+            <slice_transform.SliceTransform*>
+                new slice_transform.SliceTransformWrapper(
+                    bytes_to_string(ob.name()),
+                    <void*>ob,
+                    slice_transform_callback,
+                    slice_in_domain_callback,
+                    slice_in_range_callback))
 
     cdef object get_ob(self):
         return self.ob
 
-    cdef slice_transform.SliceTransform* get_transformer(self):
-        return <slice_transform.SliceTransform*> self.transfomer
+    cdef shared_ptr[slice_transform.SliceTransform] get_transformer(self):
+        return self.transfomer
 
     cdef set_info_log(self, shared_ptr[logger.Logger] info_log):
-        self.transfomer.set_info_log(info_log)
+        cdef slice_transform.SliceTransformWrapper* ptr
+        ptr = <slice_transform.SliceTransformWrapper*> self.transfomer.get()
+        ptr.set_info_log(info_log)
 
 
 cdef Slice slice_transform_callback(
diff --git a/rocksdb/options.pxd b/rocksdb/options.pxd
index 71f3a4c31697c8b399a1bbbec51d3eed41fa2e9f..92eae21a891fc97790c9bbeb68db0187c5b04143 100644
--- a/rocksdb/options.pxd
+++ b/rocksdb/options.pxd
@@ -45,7 +45,7 @@ cdef extern from "rocksdb/options.h" namespace "rocksdb":
         CompressionType compression
         # TODO: compression_per_level
         # TODO: compression_opts
-        SliceTransform* prefix_extractor
+        shared_ptr[SliceTransform] prefix_extractor
         cpp_bool whole_key_filtering
         int num_levels
         int level0_file_num_compaction_trigger