diff --git a/bin/ycsb b/bin/ycsb
index c19f100002df8a41a4b1141a65a7a479eab39655..d28c3f8040949b2ee69bb87f0c2c6d32c16e6c40 100755
--- a/bin/ycsb
+++ b/bin/ycsb
@@ -91,13 +91,8 @@ def usage():
 def find_jars(dir, database):
     jars = []
     for (dirpath, dirnames, filenames) in os.walk(dir):
-        if dirpath.endswith("conf"):
-            jars.append(dirpath)
         for filename in filenames:
-            if filename.endswith(".jar") and \
-               (filename.startswith("core") or \
-                filename.startswith(database.split("-")[0]) or \
-                not "binding" in filename):
+            if filename.endswith(".jar"):
                 jars.append(os.path.join(dirpath, filename))
     return jars
 
@@ -134,7 +129,11 @@ def main():
     db_classname = DATABASES[args.database]
     command = COMMANDS[args.command]["command"]
     main_classname = COMMANDS[args.command]["main"]
-    classpath = os.pathsep.join(find_jars(ycsb_home, args.database))
+    db_dir = os.path.join(ycsb_home, args.database + "-binding")
+    cp = [ os.path.join(db_dir, "conf") ]
+    cp.extend(find_jars(os.path.join(ycsb_home, "lib"), args.database))
+    cp.extend(find_jars(os.path.join(db_dir, "lib"), args.database))
+    classpath = os.pathsep.join(cp)
     if args.classpath:
         classpath = os.pathsep.join([args.classpath, classpath])