diff --git a/libsass b/libsass
index 31521ef3..62314f6a 160000
--- a/libsass
+++ b/libsass
@@ -1 +1 @@
-Subproject commit 31521ef3ece636892f395a80392448ceae449b90
+Subproject commit 62314f6a3cbc7dbed3878884504847edd7fecb7b
diff --git a/pysass.cpp b/pysass.cpp
index 01dda201..3dfc364c 100644
--- a/pysass.cpp
+++ b/pysass.cpp
@@ -417,7 +417,7 @@ PySass_compile_string(PyObject *self, PyObject *args) {
     struct Sass_Context *ctx;
     struct Sass_Data_Context *context;
     struct Sass_Options *options;
-    char *string, *include_paths, *image_path;
+    char *string, *include_paths;
     const char *error_message, *output_string;
     Sass_Output_Style output_style;
     int source_comments, error_status, precision;
@@ -425,19 +425,18 @@ PySass_compile_string(PyObject *self, PyObject *args) {
     PyObject *result;
 
     if (!PyArg_ParseTuple(args,
-                          PySass_IF_PY3("yiiyyiO", "siissiO"),
+                          PySass_IF_PY3("yiiyiO", "siisiO"),
                           &string, &output_style, &source_comments,
-                          &include_paths, &image_path, &precision,
+                          &include_paths, &precision,
                           &custom_functions)) {
         return NULL;
     }
 
-    context = sass_make_data_context(string);
+    context = sass_make_data_context(strdup(string));
     options = sass_data_context_get_options(context);
     sass_option_set_output_style(options, output_style);
     sass_option_set_source_comments(options, source_comments);
     sass_option_set_include_path(options, include_paths);
-    sass_option_set_image_path(options, image_path);
     sass_option_set_precision(options, precision);
     _add_custom_functions(options, custom_functions);
 
@@ -461,16 +460,16 @@ PySass_compile_filename(PyObject *self, PyObject *args) {
     struct Sass_Context *ctx;
     struct Sass_File_Context *context;
     struct Sass_Options *options;
-    char *filename, *include_paths, *image_path;
+    char *filename, *include_paths;
     const char *error_message, *output_string, *source_map_string;
     Sass_Output_Style output_style;
     int source_comments, error_status, precision;
     PyObject *source_map_filename, *custom_functions, *result;
 
     if (!PyArg_ParseTuple(args,
-                          PySass_IF_PY3("yiiyyiOO", "siissiOO"),
+                          PySass_IF_PY3("yiiyiOO", "siisiOO"),
                           &filename, &output_style, &source_comments,
-                          &include_paths, &image_path, &precision,
+                          &include_paths, &precision,
                           &source_map_filename, &custom_functions)) {
         return NULL;
     }
@@ -493,7 +492,6 @@ PySass_compile_filename(PyObject *self, PyObject *args) {
     sass_option_set_output_style(options, output_style);
     sass_option_set_source_comments(options, source_comments);
     sass_option_set_include_path(options, include_paths);
-    sass_option_set_image_path(options, image_path);
     sass_option_set_precision(options, precision);
     _add_custom_functions(options, custom_functions);
 
diff --git a/sass.py b/sass.py
index ee2f067c..cd4619f9 100644
--- a/sass.py
+++ b/sass.py
@@ -144,7 +144,7 @@ def __str__(self):
 
 def compile_dirname(
     search_path, output_path, output_style, source_comments, include_paths,
-    image_path, precision, custom_functions,
+    precision, custom_functions,
 ):
     fs_encoding = sys.getfilesystemencoding() or sys.getdefaultencoding()
     for dirpath, _, filenames in os.walk(search_path):
@@ -159,7 +159,7 @@ def compile_dirname(
             input_filename = input_filename.encode(fs_encoding)
             s, v, _ = compile_filename(
                 input_filename, output_style, source_comments, include_paths,
-                image_path, precision, None, custom_functions,
+                precision, None, custom_functions,
             )
             if s:
                 v = v.decode('UTF-8')
@@ -192,8 +192,6 @@ def compile(**kwargs):
     :param include_paths: an optional list of paths to find ``@import``\ ed
                           SASS/CSS source files
     :type include_paths: :class:`collections.Sequence`, :class:`str`
-    :param image_path: an optional path to find images
-    :type image_path: :class:`str`
     :param precision: optional precision for numbers. :const:`5` by default.
     :type precision: :class:`int`
     :param custom_functions: optional mapping of custom functions.
@@ -229,8 +227,6 @@ def compile(**kwargs):
     :param include_paths: an optional list of paths to find ``@import``\ ed
                           SASS/CSS source files
     :type include_paths: :class:`collections.Sequence`, :class:`str`
-    :param image_path: an optional path to find images
-    :type image_path: :class:`str`
     :param precision: optional precision for numbers. :const:`5` by default.
     :type precision: :class:`int`
     :param custom_functions: optional mapping of custom functions.
@@ -269,8 +265,6 @@ def compile(**kwargs):
     :param include_paths: an optional list of paths to find ``@import``\ ed
                           SASS/CSS source files
     :type include_paths: :class:`collections.Sequence`, :class:`str`
-    :param image_path: an optional path to find images
-    :type image_path: :class:`str`
     :param precision: optional precision for numbers. :const:`5` by default.
     :type precision: :class:`int`
     :param custom_functions: optional mapping of custom functions.
@@ -424,16 +418,6 @@ def func_name(a, b):
                             'Windows) string, not ' + repr(include_paths))
         if isinstance(include_paths, text_type):
             include_paths = include_paths.encode(fs_encoding)
-    try:
-        image_path = kwargs.pop('image_path')
-    except KeyError:
-        image_path = b'.'
-    else:
-        if not isinstance(image_path, string_types):
-            raise TypeError('image_path must be a string, not ' +
-                            repr(image_path))
-        elif isinstance(image_path, text_type):
-            image_path = image_path.encode(fs_encoding)
 
     custom_functions = kwargs.pop('custom_functions', ())
     if isinstance(custom_functions, collections.Mapping):
@@ -460,10 +444,10 @@ def func_name(a, b):
         string = kwargs.pop('string')
         if isinstance(string, text_type):
             string = string.encode('utf-8')
-        s, v = compile_string(string,
-                              output_style, source_comments,
-                              include_paths, image_path, precision,
-                              custom_functions)
+        s, v = compile_string(
+            string, output_style, source_comments, include_paths, precision,
+            custom_functions,
+        )
         if s:
             return v.decode('utf-8')
     elif 'filename' in modes:
@@ -475,10 +459,8 @@ def func_name(a, b):
         elif isinstance(filename, text_type):
             filename = filename.encode(fs_encoding)
         s, v, source_map = compile_filename(
-            filename,
-            output_style, source_comments,
-            include_paths, image_path, precision, source_map_filename,
-            custom_functions,
+            filename, output_style, source_comments, include_paths, precision,
+            source_map_filename, custom_functions,
         )
         if s:
             v = v.decode('utf-8')
@@ -522,10 +504,8 @@ def func_name(a, b):
             raise ValueError('dirname must be a pair of (source_dir, '
                              'output_dir)')
         s, v = compile_dirname(
-            search_path, output_path,
-            output_style, source_comments,
-            include_paths, image_path, precision,
-            custom_functions,
+            search_path, output_path, output_style, source_comments,
+            include_paths, precision, custom_functions,
         )
         if s:
             return
diff --git a/sassc.py b/sassc.py
index 1bfd7774..85bf9b54 100755
--- a/sassc.py
+++ b/sassc.py
@@ -21,10 +21,6 @@
    Optional directory path to find ``@import``\ ed (S)CSS files.
    Can be multiply used.
 
-.. option:: -i 
, --image-path 
-
-   Path to find images.  Default is the current directory (:file:`./`).
-
 .. option:: -m, -g, --sourcemap
 
    Emit source map.  Requires the second argument (output CSS filename).
@@ -88,8 +84,6 @@ def main(argv=sys.argv, stdout=sys.stdout, stderr=sys.stderr):
                       dest='include_paths', action='append',
                       help='Path to find "@import"ed (S)CSS source files.  '
                            'Can be multiply used.')
-    parser.add_option('-i', '--image-path', metavar='DIR', default='./',
-                      help='Path to find images. [default: %default]')
     parser.add_option('-w', '--watch', action='store_true',
                       help='Watch file for changes.  Requires the second '
                            'argument (output css filename).')
@@ -130,7 +124,6 @@ def main(argv=sys.argv, stdout=sys.stdout, stderr=sys.stderr):
                     output_style=options.output_style,
                     source_map_filename=source_map_filename,
                     include_paths=options.include_paths,
-                    image_path=options.image_path,
                     precision=options.precision
                 )
             else:
@@ -140,7 +133,6 @@ def main(argv=sys.argv, stdout=sys.stdout, stderr=sys.stderr):
                     filename=filename,
                     output_style=options.output_style,
                     include_paths=options.include_paths,
-                    image_path=options.image_path,
                     precision=options.precision
                 )
         except (IOError, OSError) as e:
diff --git a/sasstests.py b/sasstests.py
index a24bd097..aed141bc 100644
--- a/sasstests.py
+++ b/sasstests.py
@@ -57,7 +57,7 @@ def normalize_path(path):
     'sources': ['test/a.scss'],
     'sourcesContent': [],
     'names': [],
-    'mappings': ';AAKA;EAHE,AAAkB;;EAKpB,AAAK;IACD,AAAO',
+    'mappings': ';AAKA,IAAI,CAAC;EAHH,gBAAgB,EAAE,KAAM,GAGpB;;EAEJ,IAAI,CAAC,CAAC,CAAJ;IACA,KAAK,EAAE,IAAK,GADX',
 }
 
 B_EXPECTED_CSS = '''\
@@ -221,12 +221,6 @@ def test_compile_invalid_source_comments(self):
                           string='a { color: blue; }',
                           source_comments='invalid')
 
-    def test_compile_invalid_image_path(self):
-        self.assertRaises(TypeError, sass.compile,
-                          string='a { color: blue; }', image_path=[])
-        self.assertRaises(TypeError, sass.compile,
-                          string='a { color: blue; }', image_path=123)
-
     def test_compile_string(self):
         actual = sass.compile(string='a { b { color: blue; } }')
         assert actual == 'a b {\n  color: blue; }\n'
@@ -247,7 +241,8 @@ def test_compile_string(self):
 a {
   color: blue; }
 
-/* 유니코드 */''',
+/* 유니코드 */
+''',
             actual
         )
         self.assertRaises(sass.CompileError, sass.compile,
@@ -409,7 +404,7 @@ def test_output_style(self):
         self.assertEqual('a.scss.css', result_files['a.scss'])
         with open(os.path.join(css_path, 'a.scss.css'), **utf8_if_py3) as f:
             css = f.read()
-        self.assertEqual('body{background-color:green}body a{color:blue}',
+        self.assertEqual('body{background-color:green}body a{color:blue}\n',
                          css)
 
 
@@ -462,7 +457,7 @@ def test_build_one(self):
                     'sources': ['../test/b.scss'],
                     'sourcesContent': [],
                     'names': [],
-                    'mappings': ';AACA,AAAE;EACE,AAAW',
+                    'mappings': ';AACE,CAAC,CAAC,CAAC,CAAD;EACA,SAAS,EAAE,IAAI,GADd',
                 },
                 os.path.join(d, 'css', 'b.scss.css.map')
             )
@@ -480,7 +475,7 @@ def test_build_one(self):
                     'sources': ['../test/d.scss'],
                     'sourcesContent': [],
                     'names': [],
-                    'mappings': ';AAKA;EAHE,AAAkB;;EAKpB,AAAK;IACD,AAAM',
+                    'mappings': ';;AAKA,IAAI,CAAC;EAHH,gBAAgB,EAAE,KAAM,GAGpB;;EAEJ,IAAI,CAAC,CAAC,CAAJ;IACA,IAAI,EAAE,0BAA2B,GADhC',
                 },
                 os.path.join(d, 'css', 'd.scss.css.map')
             )
@@ -561,7 +556,7 @@ def test_build_sass(self):
         )
         with open(self.css_path('a.scss.css')) as f:
             self.assertEqual(
-                'p a {\n  color: red; }\np b {\n  color: blue; }\n',
+                'p a {\n  color: red; }\n\np b {\n  color: blue; }\n',
                 f.read()
             )
 
@@ -570,7 +565,7 @@ def test_output_style(self):
         self.assertEqual(0, rv)
         with open(self.css_path('a.scss.css')) as f:
             self.assertEqual(
-                'p a{color:red}p b{color:blue}',
+                'p a{color:red}p b{color:blue}\n',
                 f.read()
             )
 
@@ -727,8 +722,8 @@ def test_error(self):
                 assert False, 'Expected to raise'
             except sass.CompileError as e:
                 msg, = e.args
-                assert msg.decode('UTF-8').endswith(
-                    'bad.scss:1: invalid property name\n'
+                assert msg.decode('UTF-8').startswith(
+                    'Error: invalid property name'
                 ), msg
                 return
             except Exception as e:
@@ -1007,111 +1002,112 @@ class CustomFunctionsTest(unittest.TestCase):
 
     def test_raises(self):
         with assert_raises_compile_error(RegexMatcher(
-                r'^stdin:1: error in C function raises: \n'
-                r'Traceback \(most recent call last\):\n'
+                r'^Error: error in C function raises: \n'
+                r'       Traceback \(most recent call last\):\n'
                 r'.+'
                 r'AssertionError: foo\n\n'
-                r'Backtrace:\n'
-                r'\tstdin:1, in function `raises`\n'
-                r'\tstdin:1\n$',
+                r'       Backtrace:\n'
+                r'       \tstdin:0, in function `raises`\n'
+                r'       \tstdin:0\n'
+                r'        on line 1 of stdin\n$'
         )):
             compile_with_func('a { content: raises(); }')
 
     def test_warning(self):
         with assert_raises_compile_error(
-                'stdin:1: warning in C function returns-warning: '
+                'Error: warning in C function returns-warning: '
                 'This is a warning\n'
-                'Backtrace:\n'
-                '\tstdin:1, in function `returns-warning`\n'
-                '\tstdin:1\n'
+                '       Backtrace:\n'
+                '       \tstdin:0, in function `returns-warning`\n'
+                '       \tstdin:0\n'
+                '        on line 1 of stdin\n'
         ):
             compile_with_func('a { content: returns_warning(); }')
 
     def test_error(self):
         with assert_raises_compile_error(
-                'stdin:1: error in C function returns-error: '
-                'This is an error\n'
-                'Backtrace:\n'
-                '\tstdin:1, in function `returns-error`\n'
-                '\tstdin:1\n',
+                'Error: error in C function returns-error: This is an error\n'
+                '       Backtrace:\n'
+                '       \tstdin:0, in function `returns-error`\n'
+                '       \tstdin:0\n'
+                '        on line 1 of stdin\n'
         ):
             compile_with_func('a { content: returns_error(); }')
 
     def test_returns_unknown_object(self):
         with assert_raises_compile_error(
-                'stdin:1: error in C function returns-unknown: '
+                'Error: error in C function returns-unknown: '
                 'Unexpected type: `tuple`.\n'
-                'Expected one of:\n'
-                '- None\n'
-                '- bool\n'
-                '- str\n'
-                '- SassNumber\n'
-                '- SassColor\n'
-                '- SassList\n'
-                '- dict\n'
-                '- SassMap\n'
-                '- SassWarning\n'
-                '- SassError\n\n'
-                'Backtrace:\n'
-                '\tstdin:1, in function `returns-unknown`\n'
-                '\tstdin:1\n',
+                '       Expected one of:\n'
+                '       - None\n'
+                '       - bool\n'
+                '       - str\n'
+                '       - SassNumber\n'
+                '       - SassColor\n'
+                '       - SassList\n'
+                '       - dict\n'
+                '       - SassMap\n'
+                '       - SassWarning\n'
+                '       - SassError\n\n'
+                '       Backtrace:\n'
+                '       \tstdin:0, in function `returns-unknown`\n'
+                '       \tstdin:0\n'
+                '        on line 1 of stdin\n'
         ):
             compile_with_func('a { content: returns_unknown(); }')
 
     def test_none(self):
         self.assertEqual(
             compile_with_func('a {color: #fff; content: returns_none();}'),
-            'a{color:#fff}',
+            'a{color:#fff}\n',
         )
 
     def test_true(self):
         self.assertEqual(
             compile_with_func('a { content: returns_true(); }'),
-            'a{content:true}',
+            'a{content:true}\n',
         )
 
     def test_false(self):
         self.assertEqual(
             compile_with_func('a { content: returns_false(); }'),
-            'a{content:false}',
+            'a{content:false}\n',
         )
 
     def test_unicode(self):
         self.assertEqual(
             compile_with_func('a { content: returns_unicode(); }'),
-            u'@charset "UTF-8";\n'
-            u'a{content:☃}',
+            u'\ufeffa{content:☃}\n',
         )
 
     def test_bytes(self):
         self.assertEqual(
             compile_with_func('a { content: returns_bytes(); }'),
-            u'@charset "UTF-8";\n'
-            u'a{content:☃}',
+            u'\ufeffa{content:☃}\n',
         )
 
     def test_number(self):
         self.assertEqual(
             compile_with_func('a { width: returns_number(); }'),
-            'a{width:5px}',
+            'a{width:5px}\n',
         )
 
     def test_color(self):
         self.assertEqual(
             compile_with_func('a { color: returns_color(); }'),
-            'a{color:rgba(1,2,3,0.5)}',
+            'a{color:rgba(1,2,3,0.5)}\n',
         )
 
     def test_comma_list(self):
         self.assertEqual(
             compile_with_func('a { font-family: returns_comma_list(); }'),
-            'a{font-family:Arial,sans-serif}',
+            'a{font-family:Arial,sans-serif}\n',
         )
 
     def test_space_list(self):
         self.assertEqual(
             compile_with_func('a { border-right: returns_space_list(); }'),
-            'a{border-right:medium none}',
+            'a{border-right:medium none}\n',
         )
 
     def test_py_dict(self):
@@ -1119,7 +1115,7 @@ def test_py_dict(self):
             compile_with_func(
                 'a { content: map-get(returns_py_dict(), foo); }',
             ),
-            'a{content:bar}',
+            'a{content:bar}\n',
         )
 
     def test_map(self):
@@ -1127,7 +1123,7 @@ def test_map(self):
             compile_with_func(
                 'a { content: map-get(returns_map(), foo); }',
             ),
-            'a{content:bar}',
+            'a{content:bar}\n',
         )
 
     def test_identity_none(self):
@@ -1135,38 +1131,37 @@ def test_identity_none(self):
             compile_with_func(
                 'a {color: #fff; content: identity(returns_none());}',
             ),
-            'a{color:#fff}',
+            'a{color:#fff}\n',
         )
 
     def test_identity_true(self):
         self.assertEqual(
             compile_with_func('a { content: identity(returns_true()); }'),
-            'a{content:true}',
+            'a{content:true}\n',
         )
 
     def test_identity_false(self):
         self.assertEqual(
             compile_with_func('a { content: identity(returns_false()); }'),
-            'a{content:false}',
+            'a{content:false}\n',
         )
 
     def test_identity_strings(self):
         self.assertEqual(
             compile_with_func('a { content: identity(returns_unicode()); }'),
-            u'@charset "UTF-8";\n'
-            u'a{content:☃}',
+            u'\ufeffa{content:☃}\n',
         )
 
     def test_identity_number(self):
         self.assertEqual(
             compile_with_func('a { width: identity(returns_number()); }'),
-            'a{width:5px}',
+            'a{width:5px}\n',
         )
 
     def test_identity_color(self):
         self.assertEqual(
             compile_with_func('a { color: identity(returns_color()); }'),
-            'a{color:rgba(1,2,3,0.5)}',
+            'a{color:rgba(1,2,3,0.5)}\n',
         )
 
     def test_identity_comma_list(self):
@@ -1174,7 +1169,7 @@ def test_identity_comma_list(self):
             compile_with_func(
                 'a { font-family: identity(returns_comma_list()); }',
             ),
-            'a{font-family:Arial,sans-serif}',
+            'a{font-family:Arial,sans-serif}\n',
         )
 
     def test_identity_space_list(self):
@@ -1182,7 +1177,7 @@ def test_identity_space_list(self):
             compile_with_func(
                 'a { border-right: identity(returns_space_list()); }',
             ),
-            'a{border-right:medium none}',
+            'a{border-right:medium none}\n',
         )
 
     def test_identity_py_dict(self):
@@ -1190,7 +1185,7 @@ def test_identity_py_dict(self):
             compile_with_func(
                 'a { content: map-get(identity(returns_py_dict()), foo); }',
             ),
-            'a{content:bar}',
+            'a{content:bar}\n',
         )
 
     def test_identity_map(self):
@@ -1198,7 +1193,7 @@ def test_identity_map(self):
             compile_with_func(
                 'a { content: map-get(identity(returns_map()), foo); }',
             ),
-            'a{content:bar}',
+            'a{content:bar}\n',
         )
 
     def test_list_with_map_item(self):
@@ -1208,7 +1203,7 @@ def test_list_with_map_item(self):
                 'map-get(nth(identity(((foo: bar), (baz: womp))), 1), foo)'
                 '}'
             ),
-            'a{content:bar}'
+            'a{content:bar}\n'
         )
 
     def test_map_with_map_key(self):
@@ -1216,7 +1211,7 @@ def test_map_with_map_key(self):
             compile_with_func(
                 'a{content: map-get(identity(((foo: bar): baz)), (foo: bar))}',
             ),
-            'a{content:baz}',
+            'a{content:baz}\n',
         )