diff --git a/pkg/analyzer/lib/src/lint/linter.dart b/pkg/analyzer/lib/src/lint/linter.dart
index e4fde6c..d9050f4 100644
--- a/pkg/analyzer/lib/src/lint/linter.dart
+++ b/pkg/analyzer/lib/src/lint/linter.dart
@@ -288,9 +288,8 @@
     Source source = createSource(node.span.sourceUrl);
 
     // Cache error and location info for creating AnalysisErrorInfos
-    // Note that error columns are 1-based
     AnalysisError error = new AnalysisError(
-        source, node.span.start.column + 1, node.span.length, lintCode);
+        source, node.span.start.offset, node.span.length, lintCode);
     LineInfo lineInfo = new LineInfo.fromContent(source.contents.data);
 
     _locationInfo.add(new AnalysisErrorInfoImpl([error], lineInfo));
diff --git a/pkg/analyzer/lib/src/lint/pub.dart b/pkg/analyzer/lib/src/lint/pub.dart
index 8d12e13..1db39bf 100644
--- a/pkg/analyzer/lib/src/lint/pub.dart
+++ b/pkg/analyzer/lib/src/lint/pub.dart
@@ -122,6 +122,7 @@
   PSEntry get author;
   PSNodeList get authors;
   PSDependencyList get dependencies;
+  PSDependencyList get dependencyOverrides;
   PSEntry get description;
   PSDependencyList get devDependencies;
   PSEntry get documentation;
@@ -136,6 +137,8 @@
   T visitPackageAuthors(PSNodeList authors) => null;
   T visitPackageDependencies(PSDependencyList dependencies) => null;
   T visitPackageDependency(PSDependency dependency) => null;
+  T visitPackageDependencyOverrides(PSDependencyList dependencies) => null;
+  T visitPackageDependencyOverride(PSDependency dependency) => null;
   T visitPackageDescription(PSEntry description) => null;
   T visitPackageDevDependencies(PSDependencyList dependencies) => null;
   T visitPackageDevDependency(PSDependency dependency) => null;
@@ -318,6 +321,8 @@
   PSDependencyList dependencies;
   @override
   PSDependencyList devDependencies;
+  @override
+  PSDependencyList dependencyOverrides;
 
   _Pubspec(String src, {Uri sourceUrl}) {
     try {
@@ -352,11 +357,15 @@
     }
     if (dependencies != null) {
       visitor.visitPackageDependencies(dependencies);
-      dependencies.forEach((d) => visitor.visitPackageDependency(d));
+      dependencies.forEach(visitor.visitPackageDependency);
     }
     if (devDependencies != null) {
       visitor.visitPackageDevDependencies(devDependencies);
-      devDependencies.forEach((d) => visitor.visitPackageDevDependency(d));
+      devDependencies.forEach(visitor.visitPackageDevDependency);
+    }
+    if (dependencyOverrides != null) {
+      visitor.visitPackageDependencyOverrides(dependencyOverrides);
+      dependencyOverrides.forEach(visitor.visitPackageDependencyOverride);
     }
   }
 
@@ -371,6 +380,7 @@
     sb.writelin(homepage);
     sb.writelin(dependencies);
     sb.writelin(devDependencies);
+    sb.writelin(dependencyOverrides);
     return sb.toString();
   }
 
@@ -410,6 +420,9 @@
         case 'dev_dependencies':
           devDependencies = _processDependencies(key, v);
           break;
+        case 'dependency_overrides':
+          dependencyOverrides = _processDependencies(key, v);
+          break;
         case 'version':
           version = _processScalar(key, v);
           break;
diff --git a/pkg/analyzer/test/src/lint/pub_test.dart b/pkg/analyzer/test/src/lint/pub_test.dart
index 5a7f721..aa3412e 100644
--- a/pkg/analyzer/test/src/lint/pub_test.dart
+++ b/pkg/analyzer/test/src/lint/pub_test.dart
@@ -39,6 +39,8 @@
 dev_dependencies:
   markdown: '>=0.7.1+2 <0.8.0'
   unittest: '>=0.11.0 <0.12.0'
+dependency_overrides:
+  foo: 1.2.0
 """;
 
   Pubspec ps = new Pubspec.parse(src);
@@ -83,6 +85,10 @@
         {'markdown': '>=0.7.1+2 <0.8.0'}
       ]);
 
+      testDepListContains('dependency_overrides', ps.dependencyOverrides, [
+        {'foo': '1.2.0'}
+      ]);
+
       group('hosted', () {
         PSDependency dep =
             findDependency(ps.dependencies, name: 'transmogrify');
