diff --git a/scrplugin/pom.xml b/scrplugin/pom.xml
index 3502ed8..5432ddb 100644
--- a/scrplugin/pom.xml
+++ b/scrplugin/pom.xml
@@ -83,7 +83,7 @@
 		<dependency>
 			<groupId>com.thoughtworks.qdox</groupId>
 			<artifactId>qdox</artifactId>
-			<version>1.8</version>
+			<version>1.9</version>
 		</dependency>
 
     <!-- Logging support -->
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
index e87c2ae..a59eab3 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
@@ -172,7 +172,7 @@
                         return jcd.getFieldByName(constantName);
                     }
                 }
-                final JavaClassDescription jcd = this.manager.getJavaClassDescription(this.javaClass.getSource().getPackage() + '.' + className);
+                final JavaClassDescription jcd = this.manager.getJavaClassDescription(this.javaClass.getSource().getPackage().getName() + '.' + className);
                 if ( jcd != null ) {
                     return jcd.getFieldByName(constantName);
                 }
@@ -215,7 +215,7 @@
             if ( pos != -1 ) {
                 return null;
             }
-            className = this.javaClass.getSource().getPackage() + '.' + referencedName;
+            className = this.javaClass.getSource().getPackage().getName() + '.' + referencedName;
         }
         try {
             return this.manager.getJavaClassDescription(className);
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaTag.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaTag.java
index a8046c5..d0a6f05 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaTag.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaTag.java
@@ -20,9 +20,7 @@
 
 import java.util.Map;
 
-import org.apache.felix.scrplugin.tags.JavaClassDescription;
-import org.apache.felix.scrplugin.tags.JavaField;
-import org.apache.felix.scrplugin.tags.JavaTag;
+import org.apache.felix.scrplugin.tags.*;
 
 import com.thoughtworks.qdox.model.DocletTag;
 
@@ -73,7 +71,7 @@
      * @see org.apache.felix.scrplugin.tags.JavaTag#getSourceLocation()
      */
     public String getSourceLocation() {
-        return this.docletTag.getContext().getSource().getURL() + ", line " + this.docletTag.getLineNumber();
+        return this.docletTag.getContext().getParent().getParentSource().getURL() + ", line " + this.docletTag.getLineNumber();
     }
 
     /**
