diff --git a/htmlparser-scm-0.rockspec b/htmlparser-scm-0.rockspec
new file mode 100644
index 0000000..2718288
--- /dev/null
+++ b/htmlparser-scm-0.rockspec
@@ -0,0 +1,26 @@
+package = "htmlparser"
+version = "scm-0"
+source = {
+ url = "git://github.com/wscherphof/lua-htmlparser.git",
+ branch = "master"
+}
+description = {
+ summary = "Parse HTML text into a tree of elements with selectors",
+ detailed = [[
+ Call parse() to build up a tree of element nodes. Each node in the tree, including the root node that is returned by parse(), supports a basic set of jQuery-like selectors. Or you could walk the tree by hand.
+ ]],
+ homepage = "http://msva.github.io/lua-htmlparser/",
+ license = "LGPL+"
+}
+dependencies = {
+ "lua >= 5.2"
+}
+build = {
+ type = "builtin",
+ copy_directories = {"doc", "tst"},
+ modules = {
+ htmlparser = "src/htmlparser.lua",
+ ["htmlparser.ElementNode"] = "src/htmlparser/ElementNode.lua",
+ ["htmlparser.voidelements"] = "src/htmlparser/voidelements.lua"
+ }
+}
diff --git a/src/htmlparser.lua b/src/htmlparser.lua
index ea74485..99a2f2c 100644
--- a/src/htmlparser.lua
+++ b/src/htmlparser.lua
@@ -53,7 +53,7 @@ local function parse(text)
local closestart, closing, closename
closestart, closeend, closing, closename = string.find(root._text, "[^<]*<(/?)(%w+)", closeend)
if not closing or closing == "" then break end
- tag = table.remove(opentags[closename])
+ tag = table.remove(opentags[closename]) or tag -- kludge for cases of closing tag that wasn't opened
closestart = string.find(root._text, "<", closestart)
tag:close(closestart, closeend + 1)
node = tag.parent