         for lineChild, i in @lineChildren[line]
           childView = @view.getViewNodeFor lineChild.child
           childLine = line - lineChild.startLine
-          
-          if childView.dimensions[childLine].width is 0
-            childView.computeBoundingBoxX childLeft, childLine
-          else
-            childLeft += childView.margins.left
-            childView.computeBoundingBoxX childLeft, childLine
-            childLeft +=
-              childView.dimensions[childLine].width + childView.margins.right
+          childMargins = childView.getMargins childLine
+
+          childLeft += childMargins.left
+          childView.computeBoundingBoxX childLeft, childLine
+          childLeft +=
+            childView.dimensions[childLine].width + childMargins.right
 
         # Return the bounds we just
         # computed.

          @margins =
            top: padding
            bottom: @view.opts.indentTongueHeight
            left: @view.opts.indentWidth + @view.opts.padding
            right: padding
        else if parenttype is 'block' or (
            parenttype is 'socket' and @model.type is 'text')
          @margins =
            top: padding
            bottom: padding
            left: padding
            right: padding
        else
          @margins = {left:0, right:0, top:0, bottom:0}

        for childObj in @children
          @view.getViewNodeFor(childObj.child).computeMargins()

        return null

      # ## computeDimensions
      # Compute the size of our bounding box on each

          # Horizontal margins get added to every line.
          for size, line in dimensions
            desiredLine = line + childObject.startLine
            margins = childNode.getMargins line

            # Unless we are in the middle of an indent,
            # add padding on the right of the child.
