diff --git a/classes/rm_work.bbclass b/classes/rm_work.bbclass
index e6f3aa0..cab74cc 100644
--- a/classes/rm_work.bbclass
+++ b/classes/rm_work.bbclass
@@ -14,15 +14,18 @@ RMWORK_ORIG_TASK := "${BB_DEFAULT_TASK}"
 BB_DEFAULT_TASK = "rm_work_all"
 
 do_rm_work () {
-    cd ${WORKDIR}
-    for dir in *
-    do
-        if [ `basename ${dir}` = "temp" ]; then
-            echo "Not removing temp"
-        else 
-            echo "Removing $dir" ; rm -rf $dir
-        fi
-    done
+    if [ ! ${KEEP_WORK} ]
+    then
+        cd ${WORKDIR}
+        for dir in *
+        do
+            if [ `basename ${dir}` = "temp" ]; then
+                echo "Not removing temp"
+            else 
+                echo "Removing $dir" ; rm -rf $dir
+            fi
+        done
+    fi
 }
 addtask rm_work after do_${RMWORK_ORIG_TASK}
 
