diff --git a/netdiff/parsers/olsr.py b/netdiff/parsers/olsr.py
index <HASH>..<HASH> 100644
--- a/netdiff/parsers/olsr.py
+++ b/netdiff/parsers/olsr.py
@@ -25,6 +25,8 @@ class OlsrParser(BaseParser):
                 cost = link["tcEdgeCost"]
             except KeyError as e:
                 raise NetParserException('Parse error, "%s" key not found' % e)
+            # original olsrd cost (jsoninfo multiplies by 1024)
+            cost = float(cost / 1024)
             # add link to Graph
             graph.add_edge(source, dest, weight=cost)
         self.graph = graph
diff --git a/tests/olsr/tests.py b/tests/olsr/tests.py
index <HASH>..<HASH> 100644
--- a/tests/olsr/tests.py
+++ b/tests/olsr/tests.py
@@ -125,3 +125,9 @@ class TestOlsrParser(TestCase):
             links=result['removed'],
             expected_links=[('10.150.0.5', '10.150.0.4')]
         )
+
+    def test_weight(self):
+        parser = OlsrParser(links2)
+        graph = parser.json(dict=True)
+        self.assertEqual(str(graph['links'][0]['weight'])[0:3], '27.')
+        self.assertEqual(graph['links'][1]['weight'], 1.0)
Corrected weight in OlsrParser