| Index: runtime/bin/builtin.dart
 | 
| diff --git a/runtime/bin/builtin.dart b/runtime/bin/builtin.dart
 | 
| index 8f6ea77564c2771e59a27500c670b3548c73776c..95789889852011c7af5928f390f92d44773deb9b 100644
 | 
| --- a/runtime/bin/builtin.dart
 | 
| +++ b/runtime/bin/builtin.dart
 | 
| @@ -215,7 +215,12 @@ void _setWorkingDirectory(cwd) {
 | 
|    _workingWindowsDrivePrefix = _extractDriveLetterPrefix(cwd);
 | 
|    cwd = _sanitizeWindowsPath(cwd);
 | 
|    cwd = _enforceTrailingSlash(cwd);
 | 
| -  _workingDirectoryUri = new Uri(scheme: 'file', path: cwd);
 | 
| +  _workingDirectoryUri = new Uri.file(cwd);
 | 
| +  if (!_workingDirectoryUri.path.endsWith("/")) {
 | 
| +    var directoryPath = _workingDirectoryUri.path + "/";
 | 
| +    _workingDirectoryUri = _workingDirectoryUri.resolve(directoryPath);
 | 
| +  }
 | 
| +
 | 
|    _logResolution('# Working Directory: $cwd');
 | 
|  }
 | 
|  
 | 
| @@ -238,8 +243,15 @@ String _resolveScriptUri(String scriptName) {
 | 
|      throw 'No current working directory set.';
 | 
|    }
 | 
|    scriptName = _sanitizeWindowsPath(scriptName);
 | 
| -
 | 
| -  var scriptUri = Uri.parse(scriptName);
 | 
| +  var scriptUri;
 | 
| +  if (scriptName.startsWith("file:") ||
 | 
| +      scriptName.startsWith("http:") ||
 | 
| +      scriptName.startsWith("https:")) {
 | 
| +    scriptUri = Uri.parse(scriptName);
 | 
| +  } else {
 | 
| +    // Assume it's a file name.
 | 
| +    scriptUri = new Uri.file(scriptName);
 | 
| +  }
 | 
|    if (scriptUri.scheme != '') {
 | 
|      // Script has a scheme, assume that it is fully formed.
 | 
|      _entryPointScript = scriptUri;
 | 
| 
 |