diff --git a/examples/scripts/ec2_external_inventory.py b/examples/scripts/ec2_external_inventory.py
index 91cb1f89805..a8640b7ae58 100755
--- a/examples/scripts/ec2_external_inventory.py
+++ b/examples/scripts/ec2_external_inventory.py
@@ -135,12 +135,28 @@ class Ec2Inventory(object):
             instance = self.get_instance(region, instance_id)
             instance_vars = {}
             for key in vars(instance):
-                print key
+                key = self.to_safe(key)
                 value = getattr(instance, key)
-                print type(value)
-                if any(type(value) in [str, unicode]):
-                    instance_vars[key] = value
                 
+                # Handle multiple types
+                if type(value) in [int, bool]:
+                    instance_vars[key] = value
+                elif type(value) in [str, unicode]:
+                    instance_vars[key] = value.strip()
+                elif type(value) == type(None):
+                    instance_vars[key] = ''
+                elif key == 'region':
+                    instance_vars[key] = value.name
+                elif key == 'tags':
+                    for k, v in instance.tags.iteritems():
+                        key = self.to_safe('tag_' + k)
+                        instance_vars[key] = v
+                else:
+                    print key
+                    print type(value)
+                    print value
+                    print "---"
+                               
             data_to_print = self.json_format_dict(instance_vars, True)
         
         elif self.args.list: