--- a/trunk/wharfie/wharfie.py
+++ b/trunk/wharfie/wharfie.py
@@ -93,7 +93,7 @@
 from lib import actions
 from lib import files
 
-regexCommand = '^[ \t]*(RUN HOST|RUN|FROM|TOOLCHAIN|TO|ADD|COPY|ENTRYPOINT|SOURCE|LICENSE|ENV|[a-zA-Z0-9]+)([^\n]*)';
+regexCommand = '^[ \t]*(RUN HOST|RUN|FROM|TOOLCHAIN|TO|ADD|COPY|WORKDIR|ENTRYPOINT|SOURCE|LICENSE|ENV|ARG|EXPOSE|[a-zA-Z0-9]+)([^\n]*)';
 g_depend = '';
 
 #
@@ -113,22 +113,31 @@
         if g_depend != '':
             dep.append(g_depend);
 
-        if cmd[0] not in ('FROM', 'ENV'):
+        if cmd[0] not in ('FROM', 'ENV', 'ARG', 'EXPOSE', 'WORKDIR'):
             g_allDepends += str(cmd);
             if g_allDepends != '':
                 bld = format(0xFFFFFFFF & binascii.crc32(g_allDepends), '02X') + ".piling.tar";
 
+        # EXPOSE
+        if cmd[0] == 'EXPOSE':
+            pass
+        # WORKDIR
+        elif cmd[0] == 'WORKDIR':
+            actions.workingdir(bld, dep, cmd)
         # FROM
-        if cmd[0] == 'FROM':
+        elif cmd[0] == 'FROM':
             # special handling for debootstrap
             if cmd[1].lstrip().startswith("debian_"):
                 g_depend = cmd[1].lstrip() + ".tar";
             else:
                 g_depend = files.input_file(cmd[1]);
 
-        # ENV
-        elif cmd[0] == 'ENV':
-            make.environment.append(cmd[1]);
+        # ENV / ARG
+        elif cmd[0] == 'ENV' or cmd[0] == 'ARG':
+            arg = cmd[1].lstrip()
+            if (not " " in arg) and ("=" in arg):
+                arg = arg.replace("=", " ")
+            make.environment.append(arg);
 
         # RUN
         elif cmd[0] == 'RUN':