diff --git a/ipuz/__init__.py b/ipuz/__init__.py
index <HASH>..<HASH> 100644
--- a/ipuz/__init__.py
+++ b/ipuz/__init__.py
@@ -110,7 +110,7 @@ def validate_clueplacement(field_name, field_data):
 
 
 def validate_answer(field_name, field_data):
-    if type(field_data) not in [str, unicode]:
+    if type(field_data) not in [str, unicode] or field_data == "":
         raise IPUZException("Invalid answer value found")
 
 
diff --git a/tests/test_ipuz.py b/tests/test_ipuz.py
index <HASH>..<HASH> 100644
--- a/tests/test_ipuz.py
+++ b/tests/test_ipuz.py
@@ -342,6 +342,10 @@ class IPUZAnswerTestCase(IPUZSampleCrosswordTestCase):
         self.puzzle["answer"] = 3
         self.validate("Invalid answer value found")
 
+    def test_answer_is_non_empty_string(self):
+        self.puzzle["answer"] = ""
+        self.validate("Invalid answer value found")
+
     def test_answers_not_a_list(self):
         self.puzzle["answers"] = 3
         self.validate("Invalid answers value found")
Ensure answer value is not an empty string