diff --git a/mesh_f2.py b/mesh_f2.py
index 5f5f78b5d41824fa76098bdc4cb99add03b533b7..3e6f053756c82e3af25bff007e04131769276313 100644
--- a/mesh_f2.py
+++ b/mesh_f2.py
@@ -249,9 +249,10 @@ class MeshF2(bpy.types.Operator):
         bm = bmesh.from_edit_mesh(context.active_object.data)
         sel = [v for v in bm.verts if v.select]
         if len(sel) > 2:
-            if len([True for f in bm.faces if f.select]) == len(bm.faces):
-                # all faces selected, can't create new one
-                return {'CANCELLED'}
+            if len(bm.faces) > 0:
+                if len([True for f in bm.faces if f.select]) == len(bm.faces):
+                    # all faces selected, can't create new one
+                    return {'CANCELLED'}
             # original 'Make Edge/Face' behaviour
             try:
                 bpy.ops.mesh.edge_face_add('INVOKE_DEFAULT')
@@ -301,4 +302,4 @@ def unregister():
 
 
 if __name__ == "__main__":
-    register()
\ No newline at end of file
+    register()