Index: trunk/moap/test/test_commands_cl.py
===================================================================
--- trunk/moap/test/test_commands_cl.py	(revision 348)
+++ trunk/moap/test/test_commands_cl.py	(revision 384)
@@ -363,4 +363,67 @@
         l = len("2007-07-30")
         self.assertEquals(stdout.getvalue()[l:], expected[l:])
+
+    def testDoubleDiff(self):
+        # see https://thomas.apestaart.org/moap/trac/ticket/303
+
+        # Override any externally set CHANGE_LOG_NAME and _EMAIL_ADDRESS
+        os.environ['CHANGE_LOG_NAME'] = 'Hugo van der Hardcore'
+        os.environ['CHANGE_LOG_EMAIL_ADDRESS'] ='hugo@ninenin.jas'
+
+        os.system('svn co file://%s %s > /dev/null' % (
+            self.repodir, self.livedir))
+        self.liveWriteFile('ChangeLog', '')
+        os.system('svn add %s > /dev/null' % os.path.join(self.livedir,
+            'ChangeLog'))
+        self.liveWriteFile('test', '')
+        os.system('svn add %s > /dev/null' % os.path.join(self.livedir,
+            'test'))
+        os.system('svn commit -m "add" %s' %
+            os.path.join(self.livedir))
+
+        self.liveWriteFile('test', 'some contents')
+
+        log.debug('unittest', 'moap cl prep -c')
+        c = cl.ChangeLog(stdout=common.FakeStdOut())
+        c.parse(['-C', self.livedir, 'prepare', '-c', ])
+        # add the test file a second time
+        handle = open(os.path.join(self.livedir, 'ChangeLog'), 'a')
+        handle.write('\t* test:\n')
+        handle.close()
+
+
+        # FIXME: the diff command will diff relative paths;
+        # so running just moap cl diff will not actually change to the repo
+        # path and fail to show diffs
+        oldPath = os.getcwd()
+        os.chdir(self.livedir)
+        log.debug('unittest', 'moap cl diff')
+        stdout = StringIO.StringIO()
+        c = cl.ChangeLog(stdout=stdout)
+        c.parse(['-C', self.livedir, 'diff', ])
+        os.chdir(oldPath)
+
+        firstline = time.strftime('%Y-%m-%d') + '  ' + \
+                    'Hugo van der Hardcore' + '  <' + 'hugo@ninenin.jas' + '>'
+        expected = firstline + """
+
+\treviewed by: <delete if not using a buddy>
+\tpatch by: <delete if not someone else's patch>
+
+\t* test:
+
+\t* test:
+Index: test
+===================================================================
+--- test\t(revision 1)
++++ test\t(working copy)
+@@ -0,0 +1 @@
++some contents
+\ No newline at end of file
+"""
+        # skip the date
+        l = len("2007-07-30")
+        self.assertEquals(stdout.getvalue()[l:], expected[l:])
+
 
     def testPrepareTagged(self):
