     suggestions = []
     if prefix
       prefixLower = prefix.toLowerCase()
-      lineContext = @getLineContext(editor, bufferPosition)
+      fullLine = @getFullLine(editor, bufferPosition)
+      lineContext = @getLineContext(fullLine)
       if lineContext == 2
         return completions
       if lineContext == 1
-        suggestions = @getUseSuggestion(editor, bufferPosition, prefixLower)
+        suggestions = @getUseSuggestion(fullLine, prefixLower)
         return @buildCompletionList(suggestions, lineContext)
       lineScopes = @getLineScopes(editor, bufferPosition)
-      cursorScope = @getClassScope(editor, bufferPosition, lineScopes)
+      cursorScope = @getClassScope(fullLine, lineScopes)
       if cursorScope?
         suggestions = @addChildren(cursorScope, suggestions, prefixLower, [])
         return @buildCompletionList(suggestions)

    wordLower = word.toLowerCase()
    lineScopes = @getLineScopes(editor, bufferPosition)
    # Look up class tree
    cursorScope = @getClassScope(editor, bufferPosition, lineScopes)
    if cursorScope?
      @resolveIherited(cursorScope)
      containingScope = @findInScope(cursorScope, wordLower)

        suggestions = @addPublicChildren(modName, suggestions, prefixLower, [])
    return suggestions # Unknown enable everything!!!!

  getFullLine: (editor, bufferPosition) ->
    F77Regex = /[a-z0-9_]*\.F$/i
    fixedCommRegex = /^     [\S]/i
    freeCommRegex = /&[ \t]*$/i
    line = editor.getTextInRange([[bufferPosition.row, 0], bufferPosition])
    #
    fixedForm = false
    if editor.getPath().match(F77Regex)
      fixedForm = true
    pRow = bufferPosition.row - 1
    while pRow >= 0
      pLine = editor.lineTextForBufferRow(pRow)
      pLine = pLine.split('!')[0]
      if fixedForm
        unless line.match(fixedCommRegex)
          break
      else
        unless pLine.match(freeCommRegex)
          break
      line = pLine.split('&')[0] + line
      pRow = pRow - 1
    return line

  getLineContext: (line) ->
    useRegex = /^[ \t]*USE[ \t]/i
    subDefRegex = /^[ \t]*(PURE|ELEMENTAL|RECURSIVE)*[ \t]*(MODULE|PROGRAM|SUBROUTINE|FUNCTION)[ \t]/i
    typeDefRegex = /^[ \t]*(CLASS|TYPE)[ \t]*(IS)?[ \t]*\(/i
    if line.match(useRegex)?
      return 1
    if line.match(useRegex)?
