 
     code = new Code []
 
-    for property, value of properties
-      code.body.push new Assign new Value(thisLit, [ new Access new Literal property ]), new Literal value
-
-    for values in Import.properties
-      code.body.push new Call   new Value(thisLit, [ new Access new Literal "put" ]), values
+    for property, codeBlock of properties
+      accesses = [
+        new Access new Literal property
+      ]
+      code.body.push new Assign new Value(thisLit, accesses), new Literal codeBlock
+
+    for [importKey, codeBlock] in Import.properties
+      accesses = [
+        new Access new Literal "list"
+        new Access new Literal "'#{ importKey }'"
+      ]
+      code.body.push new Assign new Value(thisLit, accesses), new Literal codeBlock
 
     if Import.delayedEnabled
       code.body.push new Literal "(function(a, b, c) { " +

    Import.rootFile or= o.filename

    try super o, lvl catch ex
      Import.imported = {}
      Import.properties = []
      Import.rootFile = null
      Import.importedDeclarations = {}
      Import.delayedEnabled = no
      throw ex

  compileNode: (o) ->

    rel = if Import.rootFile is "repl" then "." else Import.rootFile
    relative = (Path.relative FileSystem.realpathSync(rel), file).replace /^(\.\.\/|\.\.\\\\)/, ""

    importKey = relative or Path.basename file 

    unless file of Import.imported
      Import.imported[file] = no
