diff --git a/distribution/src/main/bin/ycsb b/distribution/src/main/bin/ycsb
index 78ea95c1d86335a60b3b996753c943cb694d4711..b3046b4bfcb86a5fa0d9365a9f18dfb910f6cc66 100755
--- a/distribution/src/main/bin/ycsb
+++ b/distribution/src/main/bin/ycsb
@@ -55,9 +55,10 @@ def find_jars(dir):
     return jars
 
 def get_ycsb_home():
-    bin_dir = os.path.abspath(os.path.dirname(sys.argv[0]))
-    ycsb_home = os.path.join(*([bin_dir] + [os.path.pardir] * 4))
-    return os.path.abspath(ycsb_home)
+    dir = os.path.abspath(os.path.dirname(sys.argv[0]))
+    while "CHANGELOG" not in os.listdir(dir):
+        dir = os.path.join(dir, os.path.pardir)
+    return os.path.abspath(dir )
 
 def get_command():
     if len(sys.argv) < 2: