diff --git a/add_curve_sapling/__init__.py b/add_curve_sapling/__init__.py
index 82d28a3dc2a0a804a23d9d16ef0ed10f8ace4f4d..b840398862419c8b26eb8021ed195a5f1735d182 100644
--- a/add_curve_sapling/__init__.py
+++ b/add_curve_sapling/__init__.py
@@ -19,9 +19,9 @@
 bl_info = {
     "name": "Sapling",
     "author": "Andrew Hale (TrumanBlending)",
-    "version": (0, 2, 3),
+    "version": (0, 2, 4),
     "blender": (2, 5, 8),
-    "api": 38289,
+    "api": 38479,
     "location": "View3D > Add > Curve",
     "description": ("Adds a parametric tree. The method is presented by "
     "Jason Weber & Joseph Penn in their paper 'Creation and Rendering of "
@@ -29,8 +29,8 @@ bl_info = {
     "warning": "",  # used for warning icon and text in addons panel
     "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.5/Py/"\
         "Scripts/Curve/Sapling_Tree",
-    "tracker_url": "http://projects.blender.org/tracker/index.php?"\
-        "func=detail&aid=27226&group_id=153&atid=468",
+    "tracker_url": "http://projects.blender.org/tracker/"\
+        "?func=detail&atid=469&aid=27226&group_id=153",
     "category": "Add Curve"}
 
 if "bpy" in locals():
@@ -327,6 +327,10 @@ class AddTree(bpy.types.Operator):
         '(LeafScaleX)'),
         min=0.0,
         default=1.0)
+    leafShape = leafDist = EnumProperty(name='Leaf Shape',
+        description='The shape of the leaves, rectangular are UV mapped',
+        items=(('hex', 'Hexagonal', '0'), ('rect', 'Rectangular', '1')),
+        default='hex')
     bend = FloatProperty(name='Leaf Bend',
         description='The proportion of bending applied to the leaf (Bend)',
         min=0.0,
@@ -523,6 +527,8 @@ class AddTree(bpy.types.Operator):
             row = box.row()
             row.prop(self, 'showLeaves')
             row = box.row()
+            row.prop(self, 'leafShape')
+            row = box.row()
             row.prop(self, 'leaves')
             row = box.row()
             row.prop(self, 'leafDist')
@@ -586,4 +592,4 @@ def unregister():
     bpy.types.INFO_MT_curve_add.remove(menu_func)
 
 if __name__ == "__main__":
-    register()
+    register()
\ No newline at end of file
diff --git a/add_curve_sapling/utils.py b/add_curve_sapling/utils.py
index 7c05a15114c38c7d50c8f0e1baf9c70194d2dc27..7db6a34e7987d67ed06c7a224daec8d20c212dfb 100644
--- a/add_curve_sapling/utils.py
+++ b/add_curve_sapling/utils.py
@@ -313,10 +313,15 @@ def growSpline(stem,numSplit,splitAng,splitAngV,splineList,attractUp,hType,splin
     stem.updateEnd()
     #return splineList
 
-def genLeafMesh(leafScale,leafScaleX,loc,quat,index,downAngle,downAngleV,rotate,rotateV,oldRot,bend,leaves):
-    verts = [Vector((0,0,0)),Vector((0.5,0,1/3)),Vector((0.5,0,2/3)),Vector((0,0,1)),Vector((-0.5,0,2/3)),Vector((-0.5,0,1/3))]
-    edges = [[0,1],[1,2],[2,3],[3,4],[4,5],[5,0],[0,3]]
-    faces = [[0,1,2,3],[0,3,4,5]]
+def genLeafMesh(leafScale,leafScaleX,loc,quat,index,downAngle,downAngleV,rotate,rotateV,oldRot,bend,leaves, leafShape):
+    if leafShape == 'hex':
+        verts = [Vector((0,0,0)),Vector((0.5,0,1/3)),Vector((0.5,0,2/3)),Vector((0,0,1)),Vector((-0.5,0,2/3)),Vector((-0.5,0,1/3))]
+        edges = [[0,1],[1,2],[2,3],[3,4],[4,5],[5,0],[0,3]]
+        faces = [[0,1,2,3],[0,3,4,5]]
+    elif leafShape == 'rect':
+        verts = [Vector((1,0,0)),Vector((1,0,1)),Vector((-1,0,1)),Vector((-1,0,0))]
+        edges = [[0,1],[1,2],[2,3],[3,0]]
+        faces = [[0,1,2,3],]
     #faces = [[0,1,5],[1,2,4,5],[2,3,4]]
 
     vertsList = []
@@ -429,6 +434,7 @@ def addTree(props):
         pruneRatio = props.pruneRatio#
         leafScale = props.leafScale#
         leafScaleX = props.leafScaleX#
+        leafShape = props.leafShape
         bend = props.bend#
         leafDist = int(props.leafDist)#
         bevelRes = props.bevelRes#
@@ -732,12 +738,12 @@ def addTree(props):
                     if leaves < 0:
                         oldRot = -rotate[n]/2
                         for g in range(abs(leaves)):
-                            (vertTemp,faceTemp,oldRot) = genLeafMesh(leafScale,leafScaleX,cp.co,cp.quat,len(leafVerts),downAngle[n],downAngleV[n],rotate[n],rotateV[n],oldRot,bend,leaves)
+                            (vertTemp,faceTemp,oldRot) = genLeafMesh(leafScale,leafScaleX,cp.co,cp.quat,len(leafVerts),downAngle[n],downAngleV[n],rotate[n],rotateV[n],oldRot,bend,leaves, leafShape)
                             leafVerts.extend(vertTemp)
                             leafFaces.extend(faceTemp)
                     # Otherwise just add the leaves like splines.
                     else:
-                        (vertTemp,faceTemp,oldRot) = genLeafMesh(leafScale,leafScaleX,cp.co,cp.quat,len(leafVerts),downAngle[n],downAngleV[n],rotate[n],rotateV[n],oldRot,bend,leaves)
+                        (vertTemp,faceTemp,oldRot) = genLeafMesh(leafScale,leafScaleX,cp.co,cp.quat,len(leafVerts),downAngle[n],downAngleV[n],rotate[n],rotateV[n],oldRot,bend,leaves, leafShape)
                         leafVerts.extend(vertTemp)
                         leafFaces.extend(faceTemp)
                 # Create the leaf mesh and object, add geometry using from_pydata, edges are currently added by validating the mesh which isn't great
@@ -747,6 +753,11 @@ def addTree(props):
                 leafObj.parent = treeOb
                 leafMesh.from_pydata(leafVerts,(),leafFaces)
                 leafMesh.validate()
+                
+                if leafShape == 'rect':
+                    uv = leafMesh.uv_textures.new("leafUV")
+                    for tf in uv.data:
+                        tf.uv1, tf.uv2, tf.uv3, tf.uv4 = Vector((1, 0)), Vector((1, 1)), Vector((1 - leafScaleX, 1)), Vector((1 - leafScaleX, 0))
 
 # This can be used if we need particle leaves
 #            if (storeN == levels-1) and leaves:
@@ -904,4 +915,4 @@ def addTree(props):
             for p in armOb.pose.bones:
                 p.rotation_mode = 'XYZ'
             treeOb.parent = armOb
-        #print(time.time()-startTime)
+        #print(time.time()-startTime)
\ No newline at end of file