diff --git a/bfps/_code.py b/bfps/_code.py
index db5e275c05e5f110c657d6e3cd22dba1dd6b88ad..72a102b32730fdcdd617d1118242070aff608275 100644
--- a/bfps/_code.py
+++ b/bfps/_code.py
@@ -193,7 +193,7 @@ class _code(_base):
     def compile_code(
             self,
             no_debug = True):
-        if os.path.exists(self.name):
+        if os.path.exists(os.path.join(self.work_dir, self.name)):
             return 0
         # compile code
         build_dir = 'bfps_build_' + self.name
@@ -236,7 +236,7 @@ class _code(_base):
             current_environment['VERBOSE'] = '1'
         make_result = subprocess.check_call(['make'], env = current_environment)
         os.chdir('..')
-        shutil.copy2(build_dir + '/' + self.name, self.name)
+        shutil.copy2(os.path.join(build_dir, self.name), os.path.join(self.work_dir, self.name))
         return make_result
     def set_host_info(
             self,