         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.

      # no multiline children, either)
      computeChildren: ->
        @multilineChildrenData = [NO_MULTILINE]
        return 1

      # ## computeDimensinos
      #

          @margins =
            top: padding
            bottom: @view.opts.indentTongueHeight
            
            firstLeft: 0
            midLeft: @view.opts.indentWidth + @view.opts.padding
            lastLeft: @view.opts.indentWidth + @view.opts.padding

            firstRight: 0
            midRight: 0
            lastRight: padding

        else if parenttype is 'block' or (
            parenttype is 'socket' and @model.type is 'text')
          @margins =
            top: padding
            bottom: padding

            firstLeft: padding
            midLeft: padding
            lastLeft: padding

            firstRight: padding
            midRight: padding
            lastRight: padding
        else
          @margins = {
            firstLeft: 0, midLeft:0, lastLeft: 0
            firstRight: 0, midRight:0, lastRight: 0
            top:0, bottom:0
          }

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

        return null
      
      getMargins: (line) ->
        margins =
          left: @margins.midLeft
          right: @margins.midRight
          top: 0
          bottom: 0

        if line is 0
          margins.top = @margins.top
          margins.left = @margins.firstLeft
          margins.right = @margins.firstRight

        if line is @lineLength - 1
          margins.bottom = @margins.bottom
          margins.left = @margins.lastLeft
          margins.right = @margins.lastRight

        return margins

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